如何让 C++ 程序与 AIX 上的 gcc 堆栈保护器功能链接?

2023-12-26

我是一个 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(使用前将#替换为@)

如何让 C++ 程序与 AIX 上的 gcc 堆栈保护器功能链接? 的相关文章

随机推荐