我正在尝试在SOLARIS 10中编译目标文件,
g++ -g -fPIC -Wall -fno-builtin -fhuge-objects -Wl,-Bdynamic,-lposix4,-laio,-ldl,-lthread,-Bstatic filename.o -L. -L /directory1 -L /directory2 -ldirectory1 -ldirectory2 -o filename
it is giving following error:
ld: fatal: library -lm: not found
ld: fatal: library -lc: not found
ld: fatal: library -lc: not found
现在我很惊讶我甚至没有在g ++命令行编译中包含-lm和-lc,那么为什么它会报告错误,当我在SOLARIS 8中提供相同的编译时,它正在工作。任何人都可以请澄清为什么它表现得那样?
我使用以下命令制作filename.o:
g++ -I/direcroty_containing_header_file -c filename.cpp -o filename.o -g -fPIC -Wall -fno-builtin -fhuge-objects
答案 0 :(得分:3)
Solaris 10没有libc.a和libm.a. Solaris 8可以。
您无法在Solaris 10上静态链接到libc或libm。
答案 1 :(得分:-1)
Libc和libm是标准的C和数学库,它们通常通过g ++自动链接,因为它们非常常用。在不了解您的设置的情况下,很难说为什么ld无法找到它们,可能由于某些原因(不同的架构,而不是搜索路径等),存在的那些未被使用。