如何在CentOS 7.2上用yum安装gcc 5.3?
我正在使用CentOS 7.2 当我使用yum groupinstall "Development Tools"时,GCC版本为4.8.5,如下: 我想安装GCC 5.3 如何使用yum? 对此进行处理 解决方案 更新: 人们通常想要GCC的最新版本,而DevToolSet则是最新的,因此也许您想要DevToolset-n,其中n = {4,5,6,7 ...}在您的系统上).更新了以下CMD的n = 7. 作为devToolset-7的GCC-7.2.1的软件包作为示例.首先,您需要启用软件集合 -7: sudo yum install centos-release-scl sudo yum install devtoolset-7-gcc* scl enable devtoolset-7 bash which gcc gcc --version 其他解决方案 更新:安装GCC 9的最新版本:( GCC 9.3.0 ) - 2020年3月12
8 2023-12-25
编程技术问答社区
std::string类的继承和繁琐的c++重载解析
我需要扩展std::basic_string以在路径字符串和不同的operator+上工作: #include template class path_basic_string : public std::basic_string { public: using base_type = std::basic_string; path_basic_string() = default; path_basic_string(const path_basic_string & ) = default; path_basic_string & operator =(const path_basic_string &) = default;
8 2023-11-24
编程技术问答社区
Valgrind未识别的指令
我有以下代码: #include #include int main() { std::mt19937_64 rng(std::random_device{}()); std::cout (0, 100)(rng) IR: unhandled instruction bytes: 0xF 0xC7 0xF0 0x89 0x6 0xF 0x42 0xC1 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=0F vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==209
8 2023-11-12
编程技术问答社区
如何在CMake上编译Ignite应用程序?
我确实成功地编译了IGNITE应用程序. 但是二进制不起作用. /tmp/tmp.Nw0IPD6ru3/cmake-build-debug-local-container/planet_engine: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory 我该如何工作? 另外,我成功编译了C ++示例.例如点火式示例. 而且,我执行该操作,但是我收到了一条错误消息. An error occurred: JVM library is not found (did you set JAVA_HOME environment variable?) 和我使用夜间发行版2.8.0.20190213,因为我无法在环境中构建2.7版. 我发布了环境价值. IGNITE_HOME= TERM=xterm-25
38 2023-11-02
编程技术问答社区
sizeof()运算符的输出数据类型
我正在使用Ubuntu 16.04.5和GCC版本5.4.0. 我在玩sizeof()操作员,写下了以下代码: #include int main(int argc, char *argv[]){ long int mylint = 31331313131.1313; printf("size of long int is %d\n", sizeof(mylint)); printf("size of long int is %d\n", sizeof(long int)); return 0; } 我尝试使用gcc -o ... ...命令进行编译,并期望: size of long int is 8 size of long int is 8 但是我有以下错误: fl_double_lint.c: In function ‘main’: fl_double_li
6 2023-11-02
编程技术问答社区
用g++ 5.3.1编译的程序比用g++ 4.8.4编译的相同程序运行速度慢3倍,同样的命令
最近,我已经开始使用G ++ 5.3.1的Ubuntu 16.04,并检查了我的程序是否运行 3倍慢. 在此之前,我使用了Ubuntu 14.04,G ++ 4.8.4. 我用相同的命令构建了它:CFLAGS = -std=c++11 -Wall -O3. 我的程序包含充满数学电话(SIN,COS,EXP)的周期. 您可以找到它在这里. 我尝试使用不同的优化标志(O0,O1,O2,O3,Ofast)进行编译,但是在所有情况下,问题都会复制(ofast两个变体运行速度更快,但第一个速度的运行速度慢了3倍) . 在我的程序中,我使用libtinyxml-dev,libgslcblas.但是它们在两种情况下都有相同的版本,并且在绩效方面没有任何重要的参与(根据代码和Callgrind分析). 我已经进行了分析,但这并没有让我了解为什么会发生. kcachegrind比较(左为较慢). 我只注意到现在该程序使用libm-2.23与libm-2.19与ubuntu 14.0
8 2023-11-02
编程技术问答社区
在g++-5左右的发行版上使用g++-4.9与Boost连接时,未定义引用
我已经编写了以下开创性应用程序: #include int main(int argc, char** argv) { boost::program_options::options_description generic_options("foo"); return 0; } 我试图在Debian strave上构建此范围,默认编译器为GCC 5.3.1-5,并且BOOST的安装版本为1.58.0. 但是,由于我不会进入此处的原因(很明显如果这不是MCVE),我需要使用g++-4.9而不是g++-5.3来编译和链接二进制.编译工作正常,但是当我尝试链接时,这就是发生的事情: /usr/bin/g++-4.9 -Wall -std=c++11 CMakeFiles/tester3.dir/src/altmain2.cpp.o -o bin/tester3 -rdynamic -lboo
8 2023-09-29
编程技术问答社区
当使用-static-libstdc++时,std::线程变弱,从而导致在运行时崩溃
我需要构建一个便携式共享对象,该对象是Linux上另一个软件的插件.我对这个主题进行了一些阅读,得出的结论是,我应该用一个旧的glibc(以与较旧的系统提供兼容),建立一个系统根的GCC(GCC 5.4.0),与 and -static-libgcc因此到达我的某些东西仅取决于主机glibc和其他一些始终存在的次要东西. 现在,我完成了所有这些操作,现在我正在遇到一个奇怪的崩溃 - 分割故障发生在代码调用std::thread的地方,而GDB实际上表明堆栈帧在libstdc++.so.6内部(其中应该是什么,我共享对象的ldd也不列出libstdc++.so).崩溃时堆栈的顶部是: #0 0x0000000000000000 in ?? () #1 0x00007ffff79075e3 in std::thread::_M_start_thread(std::shared_ptr, void (*)()) () from
2 2023-09-01
编程技术问答社区
在gcc 5中varargs函数出错:后缀或操作数对 "movq' "无效。
尝试安装OpenMPI时,提交的.CONFIGURE在选中所选编译器的ISO C99功能的部分中失败. 当然,GCC当然具有STD = GNU99和STD = C99选项,我修剪20,000行配置文件以隔离违规部分.最后,我将其追溯到GCC 5不编译变量参数函数. 以下代码生成"后缀或操作数无效`movq''错误,这是.configure文件失败的根本原因. (我遵循的OpenMPI的逐步安装在这里 https://wiki.helsinki.fi/display/hugg/installing+popen+mpi++helfer+m+mac+os+x ) 任何人都看过这个并知道如何修复它? //----------------------------------------------------------------------------- // This fails to compile with gcc 5.3 // // Command: gc
20 2023-05-11
编程技术问答社区
error: 'log2' is not a member of 'std'
我不确定我在这里看到什么.以下测试结果来自运行OS X 10.5.8的旧PowerMac G5.它仍在大型PowerPC CPU下进行测试.编译器为GCC 5.4,由Macports提供. 测试程序如下.编译它导致错误 error: 'log2' is not a member of 'std' . $ cat test.cxx #include int main(int argc, char* argv[]) { double d = std::log2(2.3456789f); return 0; } 根据是std :: log2()扩展名或C ++标准?,std::log2应该可用. 为什么程序无法编译? $ /opt/local/bin/g++-mp-5 --version g++-mp-5 (MacPorts gcc5 5.4.0_0) 5.4.0 Copyright (C) 2015 Free Software Fo
80 2023-03-17
编程技术问答社区
std::unordered_set的类型不完整,在g++5中编译出错,在clang++中可以编译。
考虑与以前的问题相关的代码 c ++ cycliced依赖性与邻接列表表示 #include #include class Node; class Hash { public: std::size_t operator()(const Node &node) const; }; class Node { public: int data; std::unordered_set links; }; inline size_t Hash::operator()(const Node &node) const { return node.data; } int main() { } 使用G ++ 4.9.2或G ++ 5时,此代码不会编译,但是用Clang ++ 3.5编译. g ++吐出的错误以 开始 error: invalid applicati
10 2023-03-12
编程技术问答社区
为什么g++5在自动类型推理中推理出对象而不是initializer_list?
我最近遇到了此代码: struct Foo{}; int main() { Foo a; // clang++ deduces std::initializer_list // g++5.1 deduces Foo auto b{a}; a = b; } 它用G ++ 5.1编译,但在clang ++中失败(同时使用-std=c++11和-std=c++14,结果相同).原因是 解决方案 有一个C ++ 1Z的建议,可以实现Brace初始化的新类型扣除规则( n3922 ),我想天哪GCC实施了: 用于直接列表限制: 1.对于只有单个元素的支撑式列表,自动扣除将从该条目中推导; 2.对于具有多个元素的支撑式列表,自动扣除将不正确. [示例: auto x1 = { 1, 2 }; // decltype(x1) is std::initializer_list auto x2 = { 1, 2.0
30 2023-03-11
编程技术问答社区
在Ubuntu 15.10上用g++-4.9编译时出现运行时错误[abi:cxx11] 。
我最近将Ubuntu从15.04更新为15.10.这些版本之间的主要区别之一是从GCC-4.9-> GCC-5更新默认的GCC版本.我正在开发的库是为GCC-4.9编写和编译的,并依赖于仅在GCC-4.9中使用的其他库. 我已经在计算机上安装了GCC-4.9,我可以成功编译库和源文件.但是,当我尝试运行结果程序时,我会收到此错误: terminate called after throwing an instance of 'std::ios_base::failure[abi:cxx11]' what(): basic_ios::clear: iostream error Aborted (core dumped)` 源代码以及我试图在此处读取的文件在升级之前工作.我尝试使用-D_GLIBCXX_USE_CXX11_ABI=0标志,但我不确定这是正确的事情,也不起作用. 这是我目前包括在Makefile中的标志的示例: CPPFLAGS = -O0 -g3
60 2023-03-01
编程技术问答社区
试图让CUDA 7.5与GCC 5.x协同工作
因此,如果您尝试在系统GCC为5版及以上时尝试使用NVCC,则会遇到"不支持版本"错误.但是 - 我听说人们报告说他们刚刚发表了评论,而CUDA 7.5与GCC 5.x. ". 当我这样做时(检查在$CUDA_DIR/host_config.h中)并编译某些内容时,我会收到以下错误: /usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/mwaitxintrin.h(36): error: identifier "__builtin_ia32_monitorx" is undefined /usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/mwaitxintrin.h(42): error: identifier "__builtin_ia32_mwaitx" is undefined 和一堆其他人,但这些可能取决于这些.现在,这些是X86架构的MMX相关的内在.我不直接使用它们,所以我猜它们
22 2023-02-25
编程技术问答社区
GCC 5.3的新选项:-fno-semantic-interposition
GCC 5.3添加了一个新选项:-fno-semantic-interposition 可以使用一个新的-fno-ementic-emantic-interposition选项来改进代码 出口符号的插入的共享库质量是 不允许. 这听起来对C ++项目有用,在任何原因都不能使用插入的情况下,但是延迟是一个关注的地方. 但是,描述相当模糊.是否有人能够澄清此选项的工作原理? 解决方案 -fno-semantic-interposition可以显着提高共享库中代码的性能,但在某些情况下可能会改变语义. 默认情况下,海湾合作委员会尊重ELF符号插入语义.简而言之,任何导出的库函数(即使用默认编译器标志编译的任何库函数)可以在运行时通过LD_PRELOAD替换,或者简单地通过在另一个共享库中使用相同名称的函数替换,该库恰好由Dynamic Linker加载.这样可以防止编译器进行大量有用的分析和优化(最著名的是嵌入和克隆),因为它们可能会破坏介入. -fno-
14 2023-02-24
编程技术问答社区
我的fma()坏了吗?
在使用double fma(double x, double y, double z);中,我希望以下标记为'?'的输出线中的非零d.它仅在内部使用long double精度而不是指定的 infinite Precision 出现. fma函数计算(x×y) + z,圆形为一个三元操作:它们将值(好像)计算为 Infinite Precision an根据当前的圆形模式为结果格式. §7.12.13.12(我的重点) 所以我的fma()破坏了,还是我如何在代码或编译选项中错误地使用它? #include #include #include int main(void) { // Invoking: Cygwin C Compiler // gcc -std=c11 -O0 -g3 -pedantic -Wall -Wextra -Wconversion -c -fmessage-length=0
16 2022-09-28
编程技术问答社区
L值 istringstream 对 istream_iterator 来说是必需的?
给定 Visual Studio 中的 string foo,我可以通过以下方式将单词分解为 vector: vector fooVec{ istream_iterator(istringstream(foo)), istream_iterator() }; 但这不会在 gcc 5.1 中编译.我得到了错误: 从 std::basic_istream 类型的右值对 std::istream_iterator >::istream_type& {aka std::basic_istream&} 类型的非常量引用的初始化无效 现在我知道 gcc 有一个已修复的一个错误通过我们自己的 Jonathan Wakely.这是该错误的扩展还是我在这里使用右值 istringstream 是非法的? 解决方案 这不是 gcc 错误,而是 邪恶的 MSVC 扩展.std::is
116 2022-08-10
编程技术问答社区
试图让CUDA 7.5与GCC 5.x协同工作
所以,如果你尝试使用nvcc当系统GCC是版本5及以上,你会得到一个“不支持的版本”的错误。但是 - 我听说有人报告他们刚刚评论过这一点,CUDA 7.5“为他们工作”与GCC 5.x。 当我做同样,但是(检查是在 $ CUDA_DIR / host_config.h ),并编译的东西,我得到以下错误: /usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/mwaitxintrin.h(36):错误:标识符“__builtin_ia32_monitorx”未定义 /usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/mwaitxintrin.h(42):错误:标识符“__builtin_ia32_mwaitx”未定义 和一堆其他人,但那些可能依赖于这些。现在,这些是与X86架构相关的MMX相关内在函数。我不直接使用它们,所以我猜他们选择了。也许这可以避免? 有没有办法
2104 2022-07-19
编程技术问答社区