带有 gcc 7.1/8.1 的英特尔编译器 17.0
Intel compiler 17.0 with gcc 7.1/8.1
/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++")
如果您阅读发行说明,您会注意到 Intel C++ 17 不支持 gcc 7/8(我不会因为您没有看那个而评判您):
请注意,Intel 只提供编译器而不提供标准库,它从 gcc 中获取,因此存在兼容性限制。
注意,版本 18 也不支持它,希望 19 会附带它。
/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++")
如果您阅读发行说明,您会注意到 Intel C++ 17 不支持 gcc 7/8(我不会因为您没有看那个而评判您):
请注意,Intel 只提供编译器而不提供标准库,它从 gcc 中获取,因此存在兼容性限制。
注意,版本 18 也不支持它,希望 19 会附带它。