在GCC 4.6.1中链接数学库(Ubuntu 11.10)

ARH*_*ARH 2 c linker gcc

我发现我的应用程序的链接过程中存在问题.我对gcc 4.5没有相同的看法.它尝试将数学库与以下命令链接.

gcc -Wall -Wno-unused -MD -o mems_seektest mems_seektest.o -lm -L. -g -DASSERTS  -I../src// -I../ -I../src//src -DDEBUG -lmems_internals
Run Code Online (Sandbox Code Playgroud)

并报告以下错误按摩:

undefined reference to `sqrt'
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

nos*_*nos 7

最近的gcc/ld使用--as-needed链接器标志作为默认值.实际上,这意味着必须以与命令行相关的相反顺序指定库.如果mems_internals库需要sqrt函数,请在-lmems_internals之后使用-lm.

gcc -Wall -Wno-unused -MD -o mems_seektest mems_seektest.o  -L. -g -DASSERTS  -I../src// -I../ -I../src//src -DDEBUG -lmems_internals -lm
Run Code Online (Sandbox Code Playgroud)