带有 gcc 7.1/8.1 的英特尔编译器 17.0


/opt/intel/compilers_and_libraries_2017.2.174/linux/bin/intel64/icpc    -I/home/usermy/.conan/data/toolchain/1.0.5-g0a9b008/demo/test/package/c62a7e8ca4353a55148d1aa65d313056ef6659b2/include -I/home/usermy/.conan/data/PracticalSocket/1.3.9-g2de8945.M/demo/test/build/bf3ccdb63142bb66a24f13901c58796a91e7542e/include  -fvar-tracking -g -static-intel -ftz -fma -use-intel-optimized-headers -axAVX,AVX2,SSE4.2,CORE-AVX512 -xSSE4.2  -std=c++17 -O3 -gcc-name=/usr/gcc-8.1/bin/gcc -gxx-name=/usr/gcc-8.1/bin/g++ -O3 -DNDEBUG   -o CMakeFiles/practical_socket.dir/src/PracticalSocket.cpp.o -c /home/usermy/.conan/data/PracticalSocket/1.3.9-g2de8945.M/demo/test/build/bf3ccdb63142bb66a24f13901c58796a91e7542e/src/PracticalSocket.cpp
In file included from /usr/gcc-8.1/include/c++/8.1.0/bits/move.h(55),
from /usr/gcc-8.1/include/c++/8.1.0/bits/stl_pair.h(59),
from /usr/gcc-8.1/include/c++/8.1.0/bits/stl_algobase.h(64),
from /usr/gcc-8.1/include/c++/8.1.0/bits/char_traits.h(39),
from /usr/gcc-8.1/include/c++/8.1.0/string(40),
from /home/usermy/.conan/data/PracticalSocket/1.3.9-g2de8945.M/demo/test/build/bf3ccdb63142bb66a24f13901c58796a91e7542e/include/PracticalSocket.h(4),
from /home/usermy/.conan/data/PracticalSocket/1.3.9-g2de8945.M/demo/test/build/bf3ccdb63142bb66a24f13901c58796a91e7542e/src/PracticalSocket.cpp(1):
/usr/gcc-8.1/include/c++/8.1.0/type_traits(1061): error: identifier "__is_assignable" is undefined
: public __bool_constant<__is_assignable(_Tp, _Up)>
^
In file included from /usr/gcc-8.1/include/c++/8.1.0/bits/move.h(55),
from /usr/gcc-8.1/include/c++/8.1.0/bits/stl_pair.h(59),
from /usr/gcc-8.1/include/c++/8.1.0/bits/stl_algobase.h(64),
from /usr/gcc-8.1/include/c++/8.1.0/bits/char_traits.h(39),
from /usr/gcc-8.1/include/c++/8.1.0/string(40),
from /home/usermy/.conan/data/PracticalSocket/1.3.9-g2de8945.M/demo/test/build/bf3ccdb63142bb66a24f13901c58796a91e7542e/include/PracticalSocket.h(4),
from /home/usermy/.conan/data/PracticalSocket/1.3.9-g2de8945.M/demo/test/build/bf3ccdb63142bb66a24f13901c58796a91e7542e/src/PracticalSocket.cpp(1):
/usr/gcc-8.1/include/c++/8.1.0/type_traits(1061): error: type name is not allowed
: public __bool_constant<__is_assignable(_Tp, _Up)>

这是在cmake中添加以下内容后的内容:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O3 -gcc-name=/usr/gcc-8.1/bin/gcc -gxx-name=/usr/gcc-8.1/bin/g++")

如果您阅读发行说明,您会注意到英特尔 C++ 17 不支持 gcc 7/8(我不评判您不看它(:

https://software.intel.com/en-us/articles/intel-c-compiler-170-for-linux-release-notes-for-intel-parallel-studio-xe-2017

请注意,英特尔仅提供编译器而不是标准库,它从 gcc 获取,因此存在兼容性限制。

请注意,版本 18 也不支持它,希望它会随 19 一起提供。

相关内容

最新更新