我在一台Red Hat 7.5的机器上安装了gcc 4.8.5,我想在这台机器上编译一个软件包,为了编译这个软件包,我需要运行 "make",然而,当我运行这个程序时,我看到以下错误信息 "error: 'make_unique' is not a member of 'std'"。我的理解(可能是不正确的)是,这条信息源于4.8.5使用C++11和 "make_unique "需要C++14的事实。所以我认为编译的方法是在运行 "make "时指定使用C++14。
我试着将C++设置为14,如下:cmake -G "Unix Makefiles" -D CMAKE_CXX_STANDARD=14。
然后我运行 "make"。
但这也给出了同样的错误信息。
如果要使用C++14甚至C++17,你可以用以下方法编译它 RH Devtoolset 8. 由于DTS编译器的 "性质",所建立的软件将在目标操作系统上运行:在操作系统上提供的符号,可以在DTS编译器上运行。libstdc++
会被动态解析,而C++11及以上版本会从专门建立的静态链接到你的可执行文件。libstdc++.a
由DTS提供。