Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RedHat devtoolset-分发编译代码的含义 我正在运行CCENTS 6.4,需要一个C++编译器的后期版本来构建我的开发工具(Qt Creator)。_C++_Libraries_Libstdc++_Devtoolset_Redhat Dts - Fatal编程技术网

RedHat devtoolset-分发编译代码的含义 我正在运行CCENTS 6.4,需要一个C++编译器的后期版本来构建我的开发工具(Qt Creator)。

RedHat devtoolset-分发编译代码的含义 我正在运行CCENTS 6.4,需要一个C++编译器的后期版本来构建我的开发工具(Qt Creator)。,c++,libraries,libstdc++,devtoolset,redhat-dts,C++,Libraries,Libstdc++,Devtoolset,Redhat Dts,我不清楚使用devtools的含义,我希望有人能解释一下 如果我使用devtools编译程序,这是否意味着该可执行文件将在其他Centos 6.4安装上运行而不做任何更改 或者..我知道我的编译程序必须附带库或其他文件吗 如果……我必须修改我的C++代码来引用后面的库吗?或者这是由安装我编译的程序的人完成的 我希望这个有点晚的答案仍然可以帮助你。我发现,在RHEL 6.4上使用devtoolset(在我的例子中是1.1,但这不太重要)编译我的项目会生成二进制文件,这些二进制文件几乎可以在标准的R

我不清楚使用devtools的含义,我希望有人能解释一下

  • 如果我使用devtools编译程序,这是否意味着该可执行文件将在其他Centos 6.4安装上运行而不做任何更改
  • 或者..我知道我的编译程序必须附带库或其他文件吗
  • 如果……我必须修改我的C++代码来引用后面的库吗?或者这是由安装我编译的程序的人完成的
    我希望这个有点晚的答案仍然可以帮助你。我发现,在RHEL 6.4上使用
    devtoolset
    (在我的例子中是1.1,但这不太重要)编译我的项目会生成二进制文件,这些二进制文件几乎可以在标准的RedHat EL 6.4上运行(应该与Centos 6.4类似)

    我遇到的唯一问题是用
    -std=c++11
    编译我的项目,这会由于不兼容的符号而产生一些问题。原因是GCC人员认为标准库的这些部分在GCC4.4中是实验性的,所以他们在某些地方破坏了ABI兼容性

    事实证明,有一个简单的修复方法:使用附加的命令行参数
    -static libstdc++
    链接程序。这样,二进制文件会变得更大一些,但在未修改的RHEL 6.4上运行,而无需为
    devtoolset
    安装额外的库/更新

    要明确回答您的问题:

  • 是的,差不多了
  • 没有
  • 不要更改代码,只需在链接时添加
    -static libstdc++

  • 您可能是指devtoolset而不是devtoolsYou还可以使用二进制应用程序重新分发libstdc++共享库