我是一个 AIX 新手。我正在尝试使用 gcc 的堆栈保护器功能来编译程序。我使用 pware 的 GCC 包在服务器上安装了 gcc,我可以编译一个示例程序,例如:
#include <stdio.h>
int main(int argc,char **argv)
{
printf("hello world\n");
return 0;
}
当我打开堆栈保护器时,我得到:
g++ -fstack-protector-all main.cpp
collect2:未找到库 libssp_nonshared
我一直在谷歌上寻找解决方案,似乎我的 libc 需要内置一些东西,而我的 libc 则不需要。是否有包含内置堆栈保护的 libc 的软件包?
g++ -v 返回
Using built-in specs.
Target: powerpc-ibm-aix5.3.0.0
Configured with: ../stage/gcc-4.2.4/configure --disable-shared --enable-threads=posix --prefix=/opt/pware --with-long-double-128 --with-mpfr=/opt/pware --with-gmp=/opt/pware
Thread model: aix
gcc version 4.2.4
我在系统上找不到 libssp_nonshared.a - 是否需要安装其他软件包,或者它应该与 gcc 软件包一起提供吗?
这与libc
: your GCC
安装缺失libssp_nonshared.a
图书馆。
你的什么"gcc --version"
说?它可能已配置为--disable-libssp
选项(在这种情况下您不能使用堆栈保护工具)。
Update:
我刚进去看gcc-4.3.0/configure
:
powerpc-*-aix*)
noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
;;
我大约 99% 确定这意味着 libssp (因此-fstack-protector
) 不适用于您的平台。对不起 :-(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)