是否有内置的linux实用程序,我可以用来测试新编译的共享库以获取外部未定义的引用?Gcc似乎足够聪明,可以在我自己的二进制文件中检查未定义的符号,但如果符号是对另一个库的引用,则gcc不会在链接时检查.相反,当我尝试从另一个程序链接到我的新库时,我只收到消息.
当我编译一个不同的项目时,在库中获取未定义的引用消息似乎有点愚蠢,所以我想知道在构建库时是否可以检查内部和外部的所有引用,而不是在链接到它时.
示例错误:
make -C UnitTests debug
make[1]: Entering directory `~/projects/Foo/UnitTests`
g++ [ tons of objects ] -L../libbar/bin -lbar -o UnitTests
libbar.so: undefined reference to `DoSomethingFromAnotherLibrary`
collect2: ld returned 1 exit status
make[1]: *** [~/projects/Foo/UnitTests] Error 1
Run Code Online (Sandbox Code Playgroud)
-z defs通常,链接共享对象时允许未定义的引用,但是如果您要链接的对象文件中存在未定义的符号(通过提供给链接器(或等效地-Wl,-z,defs在 gcc 命令中创建共享库)),则可以使链接器生成错误调用链接器)。
| 归档时间: |
|
| 查看次数: |
770 次 |
| 最近记录: |