【发布时间】:2011-07-18 15:56:07
【问题描述】:
我的一个共享库 my.so 使用基于版本的符号作为库 test.so 中的符号@@test_1.2.3。当我将 my.so 共享库与我的可执行文件链接时,它显示“未引用符号符号@@test_1.2.3”。当链接行如下时会发生这种情况 -
g++ -o myexecutable myexecutable.o -L/path-to-my.so -lmy -L/path-to-test.so -ltest
如果我将链接链接更改为 -
g++ -o myexecutable myexecutable.o -L/path-to-my.so -lmy /path-to-test.so/libtest.so
它有效。
为什么libtest.so 在用-L 指定时不会被拾取,但在作为完整路径给出时会被拾取?
【问题讨论】:
-
第一个例子中
-ltest和-lmy的顺序你试过了吗? -
感谢您的回复。我在发布我的问题之前尝试过这个,但它没有帮助。
-
你有没有尝试改变这两个库的路径,比如
g++ -o myexecutable myexecutable.o -L/path-to-my.so/libmy.so /path-to-test.so/libtest.so