我是一个AIX新手.我正在尝试使用gcc的堆栈保护功能编译程序.我使用pware的GCC包在服务器上安装了gcc,我可以编译一个示例程序,如:
#includeint main(int argc,char **argv) { printf("hello world\n"); return 0; }
当我打开堆栈保护,虽然,我得到:G ++ -fstack保护器,所有的main.cpp collect2:库libssp_nonshared未找到
我一直在谷歌寻找解决方案,看起来我的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
以下内容无关:您的GCC
安装缺少libssp_nonshared.a
库.
你"gcc --version"
说什么?它可能已配置了--disable-libssp
选项(在这种情况下,您不能使用堆栈保护工具).
更新:
我刚看了一下gcc-4.3.0/configure
:
powerpc-*-aix*) noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}" ;;
我大约99%肯定这意味着libssp(因此-fstack-protector
)不适用于您的平台.对不起:-(