我正在这个项目中工作,要求我使用一些很久以前编写的软件,现在是开源的,可以在http://www.wotug.org/occam/compilers/oc/oc-src.tar.gz找到。该软件基本上是Occam的编译器。
当我解压缩tar.gz时,我找到了一个包含csh脚本的源文件夹来构建软件。
#!/bin/csh -f
#
# Quick build script for occam compiler and libraries
#
# You will need to redefine these
set gccinclude = "/u/products/toolset/release/build/include/gcc"
set inmos_occam = /inmos/prod/d4205a
# These should be ok
set base_dir = $cwd
set path = ($inmos_occam/tools $base_dir/preocc $path)
setenv ISEARCH "$base_dir/libs/ $base_dir/include/ $gccinclude/"
set buildlibs = (arglib extlib tcofflib)
foreach buildlib ($buildlibs)
echo --- $buildlib
cd $buildlib
make -f [Mm]akefile.s4 COMMON=$base_dir GCCINCLUDE=$gccinclude TLIB=
cd ..
end
... some other stuff...
我相信这些台词: 设置gccinclude =" / u / products / toolset / release / build / include / gcc" 设置inmos_occam = / inmos / prod / d4205a 指定为编译过程存储.h文件的位置,并且inmos_occam变量告诉我希望存储最终二进制文件的位置,因此我将它们更改为: 设置gccinclude =" / usr / include" 设置inmos_occam = ./bin 问题是,当我运行脚本时,我收到以下错误:
--- arglib
gcc -I./ -nostdinc /usr/include ./arg.c -c -o arg.o -ansi -DSUN4
./arg.c:9:19: fatal error: ctype.h: No such file or directory
#include <ctype.h>
^
compilation terminated.
make: *** [arg.a] Error 1
--- extlib
gcc -c -msoft-float -Wall -ansi -pedantic -nostdinc /usr/include I/home/andres/Documents/T2015-Compiler/src/include -DGNU extconv.c
In file included from /home/andres/Documents/T2015-Compiler/src/include/extlib.h:8:0,
from extconv.c:1:
/home/andres/Documents/T2015-Compiler/src/include/imsstd.h:30:19: fatal error: stdio.h: No such file or directory
#include <stdio.h>
....and a lot more....
我不太了解海湾合作委员会,但我认为问题在于这个论点&#39; -nostdinc&#39;告诉编译器不要查看标准包含目录(文件在我的ubuntu系统中),这就是它无法正常工作的原因。但是,我不知道如何覆盖这种行为。我非常感谢帮助,以便我可以编译它,如果您认为这不是问题的原因,请告诉我。
谢谢!
答案 0 :(得分:0)
-nostdinc
表示您忽略了标准的包含路径,而我猜测您并不想要。但是我可以看到:
gcc -I./ -nostdinc /usr/include ./arg.c -c -o arg.o -ansi -DSUN4
/usr/include
应该与-I/usr/include
类似,以便将其包含在包含路径中。
稍后你有
I/home/andres/Documents/T2015-Compiler/src/include
应该是
-I/home/andres/Documents/T2015-Compiler/src/include