1

I'm having a strange error with clang. I'm attempting to build pandas and it's failing to build msgpack. I've added to my search path a folder which contains the file complex.h, and I'm passing the path to this folder as an argument with -I/nix/store/pv614rqz5vcvmh4gx1hma13cscbbn8a5-MacOSX10.9.sdk/Developer/SDKs/MacOSX10.9.sdk/usr/include. However, clang is still failing to find it.

$ ls /nix/store/pv614rqz5vcvmh4gx1hma13cscbbn8a5-MacOSX10.9.sdk/Developer/SDKs/MacOSX10.9.sdk/usr/include | grep complex
complex.h

$ clang -v -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -D__LITTLE_ENDIAN__=1 -Ipandas/src/klib -Ipandas/src -I/nix/store/pv614rqz5vcvmh4gx1hma13cscbbn8a5-MacOSX10.9.sdk/Developer/SDKs/MacOSX10.9.sdk/usr/include -I/nix/store/8yvsx3drb1jv3l42kp5my9qjym2flqs2-python2.7-numpy-1.9.2/lib/python2.7/site-packages/numpy/core/include -I/nix/store/8jnc2msdn8d386wni8pviji3g5zkld31-python-2.7.10/include/python2.7 -c pandas/msgpack.cpp -o build/temp.macosx-10.7-x86_64-2.7/pandas/msgpack.o
clang version 3.6.2 (tags/RELEASE_362/final)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
 "/nix/store/3ipm9yr9jz4mcgc9n2fa85rwrjjk2bi0-clang-3.6.2/bin/clang-3.6" -cc1 -triple x86_64-apple-macosx10.7.0 -emit-obj -disable-free -disable-llvm-verifier -main-file-name msgpack.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -relaxed-aliasing -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 241.9 -v -gdwarf-2 -dwarf-column-info -coverage-file /var/folders/wl/723blrkd0q70mdnf5flcvqsw00010q/T/pandas-build/pandas-0.16.2/build/temp.macosx-10.7-x86_64-2.7/pandas/msgpack.o -nostdsysteminc -resource-dir /nix/store/3ipm9yr9jz4mcgc9n2fa85rwrjjk2bi0-clang-3.6.2/bin/../lib/clang/3.6.2 -idirafter /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -isystem /nix/store/8jnc2msdn8d386wni8pviji3g5zkld31-python-2.7.10/include -isystem /nix/store/whdp09gkfw7jvjp1l6i746cncf83p901-libc++-3.6.2/include -isystem /nix/store/9zqc1nvla9f3kbra4734wx7hdxafgzpc-openblas-0.2.14/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -D NDEBUG -D __LITTLE_ENDIAN__=1 -I pandas/src/klib -I pandas/src -I /nix/store/pv614rqz5vcvmh4gx1hma13cscbbn8a5-MacOSX10.9.sdk/Developer/SDKs/MacOSX10.9.sdk/usr/include -I /nix/store/8yvsx3drb1jv3l42kp5my9qjym2flqs2-python2.7-numpy-1.9.2/lib/python2.7/site-packages/numpy/core/include -I /nix/store/8jnc2msdn8d386wni8pviji3g5zkld31-python-2.7.10/include/python2.7 -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks -O3 -Wall -Wstrict-prototypes -Wno-multichar -Wno-deprecated-declarations -fdeprecated-macro -fdebug-compilation-dir /var/folders/wl/723blrkd0q70mdnf5flcvqsw00010q/T/pandas-build/pandas-0.16.2 -ferror-limit 19 -fmessage-length 0 -fwrapv -stack-protector 1 -mstackrealign -fblocks -fobjc-runtime=macosx-10.7.0 -fencode-extended-block-signature -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o build/temp.macosx-10.7-x86_64-2.7/pandas/msgpack.o -x c++ pandas/msgpack.cpp
clang -cc1 version 3.6.2 based upon LLVM 3.6.2 default target x86_64-apple-darwin13.4.0
#include "..." search starts here:
#include <...> search starts here:
 pandas/src/klib
 pandas/src
 /nix/store/pv614rqz5vcvmh4gx1hma13cscbbn8a5-MacOSX10.9.sdk/Developer/SDKs/MacOSX10.9.sdk/usr/include
 /nix/store/8yvsx3drb1jv3l42kp5my9qjym2flqs2-python2.7-numpy-1.9.2/lib/python2.7/site-packages/numpy/core/include
 /nix/store/8jnc2msdn8d386wni8pviji3g5zkld31-python-2.7.10/include/python2.7
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks (framework directory)
 /nix/store/8jnc2msdn8d386wni8pviji3g5zkld31-python-2.7.10/include
 /nix/store/whdp09gkfw7jvjp1l6i746cncf83p901-libc++-3.6.2/include
 /nix/store/9zqc1nvla9f3kbra4734wx7hdxafgzpc-openblas-0.2.14/include
 /nix/store/3ipm9yr9jz4mcgc9n2fa85rwrjjk2bi0-clang-3.6.2/bin/../lib/clang/3.6.2/include
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include
End of search list.
In file included from pandas/msgpack.cpp:252:
In file included from /nix/store/8yvsx3drb1jv3l42kp5my9qjym2flqs2-python2.7-numpy-1.9.2/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4:
In file included from /nix/store/8yvsx3drb1jv3l42kp5my9qjym2flqs2-python2.7-numpy-1.9.2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:17:
In file included from /nix/store/8yvsx3drb1jv3l42kp5my9qjym2flqs2-python2.7-numpy-1.9.2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1804:
/nix/store/8yvsx3drb1jv3l42kp5my9qjym2flqs2-python2.7-numpy-1.9.2/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: "Using deprecated NumPy API, disable it by "          "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings]
#warning "Using deprecated NumPy API, disable it by " \
 ^
In file included from pandas/msgpack.cpp:254:
pandas/src/msgpack/unpack.h:72:11: warning: comparison of constant 9223372036854775807 with expression of type 'uint32_t' (aka 'unsigned int') is always false [-Wtautological-constant-out-of-range-compare]
    if (d > LONG_MAX) {
        ~ ^ ~~~~~~~~
pandas/msgpack.cpp:447:14: fatal error: 'complex' file not found
    #include <complex>
             ^
2 warnings and 1 error generated.
limp_chimp
  • 13,475
  • 17
  • 66
  • 105
  • complex.h and are different things – Slava Sep 10 '15 at 17:25
  • I thought they were the same from the point of view of C++. So then, what should I be looking for? – limp_chimp Sep 10 '15 at 17:26
  • This is standard header and should come with libstdc++ – Slava Sep 10 '15 at 17:28
  • OK, but I still need to know where the file is to be found because I'm not using any system-wide paths in my build. Also, what is the actual file called if not `complex.h`? Would it be `complex.hpp` or something? – limp_chimp Sep 10 '15 at 17:30
  • 1
    You should not specify path to it but rather use `clang++` to compile c++ sources – Slava Sep 10 '15 at 17:31
  • The clang command is being wrapped by the Python setup.py, so I don't have control over it. Surely there is a way to inform clang where to find headers. – limp_chimp Sep 10 '15 at 17:36
  • I am afraid you will have other issues when compiling c++ code with clang rather than clang++, not only missing headers – Slava Sep 10 '15 at 17:41
  • Here http://stackoverflow.com/questions/9148488/how-do-i-compile-c-with-clang it says you can also pass `-x c++` to clang – Slava Sep 10 '15 at 17:43

0 Answers0