在未链接的部分上生成警告
Generate warning on unlinked section
我正在编写自己的链接器脚本和启动代码(用于嵌入式处理器(,并且正在使用GNU链接器。
起初,我开始只支持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
部分。foo.o
是libfoo.a
的一部分
现在,当您与gcc main.o -lfoo
链接时,foo.o
不会被拉入链接(因为没有对它的引用(,您的警告现在会告诉您.x
、.y
和.z
没有链接到程序中。
相关文章:
- 在未链接的部分上生成警告
- 链接时突然收到maxrregcount警告和未定义的引用错误
- 为什么混合 -fexceptions 和 -fno 异常没有链接器警告
- C 链接器警告是因为虚拟击D驱动器 / clang
- 与其他库链接的静态库-LINKER警告
- 尝试解决链接器警告:默认库'MSVCRT'与使用其他库冲突
- 这个链接器警告的含义是什么,以及如何修复它
- 链接器不指出错误;多个定义警告指向同一行
- 发布模式下的正则表达式提升库链接在使用 mingw-w64 工具链时警告"duplicate section has different size"
- 警告LNK4206:找不到预编译类型信息; 未链接或覆盖;链接对象,就好像没有调试信息一样
- 在视觉C++ malloc 警告中静态链接 openssl
- 为什么 clang++ 警告内联enable_if然后无法链接
- 使用指向函数的指针的外部引用时的链接器警告
- 使用 CMake 禁止显示链接警告
- 链接 : 警告 LNK4098: 默认库 'MSVCRT' 与其他库的使用冲突;使用 /NODEFAULTLIB:Library
- 类模板的Makefile问题:clang警告链接器输入未使用
- VS2013的Qt4到Qt5迁移链接器警告(和错误)
- C++警告:没有用于声明变量的链接的匿名类型
- 警告:链接器路径没有库-lpthread的实际文件
- g++.exe[警告]链接器输入文件未使用,因为链接未完成