RedHat devtoolset-分发编译代码的含义 我正在运行CCENTS 6.4,需要一个C++编译器的后期版本来构建我的开发工具(Qt Creator)。
我不清楚使用devtools的含义,我希望有人能解释一下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
我希望这个有点晚的答案仍然可以帮助你。我发现,在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++共享库