也找不到静态库符号我有一个静态库liborc-0.4.a,没有共享库。我有另一个库libschroedinger-1.0.a(不共享),它依赖于liborc-0.4.a中的符号。如果我在liborc-0.4.a上运行nm,orc_init等符号显示为T(表示它们已定义)。我使用命令行标记-lorc-0.4构建了libschroedinger-1.0.a,以便它看到符号并且没问题。即使使用-l
但是,现在我有一个小的可执行文件,依赖于libschroedinger-1.0.a。它编译罚款,但是当我运行链接
gcc -lschroedinger-1.0 -lorc-0.4 -o output input.o
它给错误,如:
/usr/local/lib/libschroedinger-1.0.a(libschroedinger_1.0_la-schro.o):schro.c:(.text+0x21):
undefined reference to `orc_init'
唯一的要求是所有的库都在编译器行中列出了它们自己的依赖关系。所以,如果liba依赖于libb,你可以编写gcc ... -la -lb。如果存在循环依赖关系,则包含两次相同的库。 – 2011-02-15 22:52:03