【发布时间】:2013-05-11 19:18:53
【问题描述】:
试图进行搜索,但没有找到任何东西。每当我尝试编译共享对象和链接到它的测试二进制文件时,我都会收到此错误:
[root@hypervisor test-files]# ./test
./test: symbol lookup error: ./test-files.so: undefined symbol: stat
[root@hypervisor test-files]#
在玩弄它之后,我发现如果我在编译期间将-O 提供给 gcc,则 stat() 开始按预期工作。我无法在网上找到任何迹象,说明为什么 -O of all things 修复未定义符号的问题(或者它只是掩盖错误而不是修复它?)。
【问题讨论】:
-
您不需要链接任何特殊的库来获取
stat。这是一个交叉编译环境,还是其他特殊的构建环境? -
-On , n=0 无优化,n=1 ...n=3 所有优化, -O0 删除所有可能为代码提供替代执行形式的优化
-
不只是一台普通的 RHEL6 机器。
-
您说的是编译您的
test-files.so文件,而不是测试二进制文件,对吧? -
它们都是由同一个目录中的同一个 Makefile 构建的
标签: c linux shared-libraries glibc