C++ 在未链接的节上生成警告
我正在编写自己的链接器脚本和启动代码(针对嵌入式处理器),并且正在使用gnu链接器 起初,我开始只支持C++ 在未链接的节上生成警告,c++,c,linker,linker-scripts,C++,C,Linker,Linker Scripts,我正在编写自己的链接器脚本和启动代码(针对嵌入式处理器),并且正在使用gnu链接器 起初,我开始只支持C代码,我的启动代码运行良好……然后我尝试链接C++程序。它连接起来,一切都很好,但它不起作用 经过一些调试后,我发现链接器脚本没有将.sbss部分放在任何地方(我确实将.bss部分放在了某个地方,但没有将.sbss放在那里)。所以我的问题是: 是否可以在节未链接到程序时生成警告?。。。。谷歌搜索什么也找不到,我浏览了链接器的手册,但没有结果 是否可以在节未链接到程序时生成警告 我认为这在链接器
C
代码,我的启动代码运行良好……然后我尝试链接C++
程序。它连接起来,一切都很好,但它不起作用
经过一些调试后,我发现链接器脚本没有将.sbss
部分放在任何地方(我确实将.bss
部分放在了某个地方,但没有将.sbss
放在那里)。所以我的问题是:
是否可以在节未链接到程序时生成警告?。。。。谷歌搜索什么也找不到,我浏览了链接器的手册,但没有结果
是否可以在节未链接到程序时生成警告
我认为这在链接器中是不可能的,但您可以在链接后步骤中实现它:
readelf -WS a.out | grep -q ' \.sbss' || { echo "Did not find .sbss!" >&2; false; }
我希望它适用于任意部分(目前我可能不知道)
这样的警告是没有用的,因为它会一直开火
考虑:
定义main.o
,不引用任何其他内容main
定义了foo.o
,并有foo
、.x
和.y
部分.z
是libfoo.afoo.o
现在,当您链接到
gcc main.o-lfoo
时,foo.o
将不会被拉入链接(因为没有对它的引用),您的警告现在会告诉您,.x
、.y
和.z
没有链接到程序中。是的,但我希望这对任意部分起作用(此时我可能不知道)