gpt4 book ai didi

c++ - 在 Linux 中测试外部 undefined reference

转载 作者:IT王子 更新时间:2023-10-29 00:39:53 26 4
gpt4 key购买 nike

是否有内置的 linux 实用程序可用于测试新编译的共享库是否存在外部 undefined reference ? Gcc 似乎足够智能,可以在我自己的二进制文件中检查 undefined symbol ,但是如果该符号是对另一个库的引用,gcc 不会在链接时进行检查。相反,我只有在尝试从另一个程序链接到我的新库时才会收到消息。

当我编译一个不同的项目时,在库中获取 undefined reference 消息似乎有点傻,所以我想知道我是否可以在构建库时而不是在链接到时检查所有内部和外部引用

示例错误:

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

最佳答案

通常,在链接共享对象时允许使用 undefined reference ,但是如果您正在链接以创建共享库的对象文件中存在 undefined symbol ,您可以通过提供 -z defs< 使链接器生成错误 到链接器(或等效于调用链接器的 gcc 命令中的 -Wl,-z,defs)。

关于c++ - 在 Linux 中测试外部 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2761242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com