c++ - Can I use CLang and libstdc++ (emmintrin.h) -
the following code
#include <iostream> int main(void) { std::cout << "hello world!" << std::endl; return 0; }
compiles fine both g++ , clang
g++ test.cpp clang -i /usr/lib/gcc/x86_64-linux-gnu/4.7/include -i /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed -lstdc++ test.cpp
where /usr/lib/gcc/x86_64-linux-gnu/4.7/
points include files of libstdc++
however, when add additional #include <emmintrin.h>
the clang compilations fails
in file included test.cpp:2: in file included /usr/lib/gcc/x86_64-linux-gnu/4.7/include/emmintrin.h:36: in file included /usr/lib/gcc/x86_64-linux-gnu/4.7/include/xmmintrin.h:36: /usr/lib/gcc/x86_64-linux-gnu/4.7/include/mmintrin.h:46:72: warning: unknown attribute '__artificial__' ignored [-wunknown-attributes] extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ^ /usr/lib/gcc/x86_64-linux-gnu/4.7/include/mmintrin.h:52:72: warning: unknown attribute '__artificial__' ignored [-wunknown-attributes] extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ... /usr/lib/gcc/x86_64-linux-gnu/4.7/include/xmmintrin.h:120:19: error: use of undeclared identifier '__builtin_ia32_divss'; did mean '__builtin_ia32_minss'? return (__m128) __builtin_ia32_divss ((__v4sf)__a, (__v4sf)__b); ...
according http://en.cppreference.com/w/cpp/header, `xmmintrin.h' not part of interface of standard c++ library , hence guess contains gnu specific stuff. can somehow compile code using clang?
if not, how can install clang libc++?
sudo aptitude install libc++-dev
doesn't find package (while work on ubuntu 16.04)
i'm using
"debian gnu/linux 7 (wheezy)" gcc version 4.7.2 (debian 4.7.2-5) // target: x86_64-linux-gnu clang version 3.6.0 (trunk 224504) // target: x86_64-unknown-linux-gnu
apparently, clang installation incomplete.
after downloading llvm , clang (v3.7.1 since v4.0.1 required gcc4.8 while have 4.7) , building locally clang -lstdc++ test.cpp
works fine in both cases.
Comments
Post a Comment