【问题标题】:How do I get C++ programs to link with gcc's stack protector feature on AIX?如何让 C++ 程序与 AIX 上的 gcc 堆栈保护器功能链接?
【发布时间】:2010-11-23 20:22:52
【问题描述】:

我是一个 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 的软件包?

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 包一起提供?

【问题讨论】:

    标签: gcc aix


    【解决方案1】:

    这与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)不适用于您的平台。对不起:-(

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 2015-01-16
      • 2019-08-11
      • 2020-08-17
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 2016-07-01
      相关资源
      最近更新 更多