ld:致命:库-lm:在solaris 10中找不到

时间:2015-07-22 11:21:29

标签: c++ g++ solaris solaris-10

我正在尝试在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

2 个答案:

答案 0 :(得分:3)

Solaris 10没有libc.a和libm.a. Solaris 8可以。

您无法在Solaris 10上静态链接到libc或libm。

答案 1 :(得分:-1)

Libc和libm是标准的C和数学库,它们通常通过g ++自动链接,因为它们非常常用。在不了解您的设置的情况下,很难说为什么ld无法找到它们,可能由于某些原因(不同的架构,而不是搜索路径等),存在的那些未被使用。