On OS X Maverick, libc++ headers are part of the compiler toolchain and not of 
the system. That's why when using a custom toolchain (or clang based tool), you 
got this error.

To use libc++ with your own clang build, you have to install it alongside your 
clang binary.

The good news is that it will be automatically done when installing clang if 
you checkout the libc++ project at the right place, that is in <llvm 
sources>/projects/libcxx

cd <llvm sources>/projects
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx

Now, go to your build directory and run make install again.

It should install the clang tools and libc++ headers at the right place, and 
clang should find them.

Note that if you want to know where clang look for the libc++ headers, you can 
pass the "-v" flags to the compiler to tell it to print the header search path.

Le 25 nov. 2013 à 19:14, Robert J Goedman <[email protected]> a écrit :

> Hi,
> 
> After watching Chandler Carruth's 
> http://channel9.msdn.com/Events/GoingNative/2013/The-Care-and-Feeding-of-C-s-Dragons
>  I decided to try the format and modernize examples in the middle of his 
> presentation. After installing the latest LLVM suite, all examples without 
> #include files work fine, both in clang-format and clang-modernize. Very 
> impressive.
> 
> Using the native (Apple, Xcode) toolchain, I can cmake, make and run the 
> example programs in a build directory directly under the source directory, 
> e,g. clang-tools/vector/build under clang-tools/vector which contains 
> vector.cpp and CMakeLists.txt.
> 
> But clang-modernize will fail *if* it contains a template based #include, 
> e.g. Chandler's loop-convert example based on a small vector<int> loop.
> Somehow I can't figure out how to specify the right flags for the 
> compiler/linker in cmakelist.txt.
> 
> Any pointers appreciated!
> 
> Thanks,
> Rob J. Goedman
> [email protected]
> 
> ------------/clang-tools/vector/vector.cpp------------
> 
> #include <vector>
> #include <iostream>
> 
> int sum(const std::vector<int> &numbers) {
>   int result = 0;
>   for (std::vector<int>::const_iterator it = numbers.begin();
>        it != numbers.end(); ++it) {
>     result += *it;
>   }
>   return result;
> }
> 
> int main() {
>   std::vector<int> nums = { 1, 5, 6, 38 };
>   std::cout << sum(nums) << std::endl;
> }
> 
> -------------/clang-tools/vector/CMakeLists.Txt
> 
> project(foundations)
> cmake_minimum_required(VERSION 2.8)
> 
> include_directories($ENV{GMOCK_HOME}/include $ENV{GMOCK_HOME}/gtest/include)
> link_directories($ENV{GMOCK_HOME}/mybuild $ENV{GMOCK_HOME}/gtest/mybuild)
> add_definitions(-stdlib=libc++ -std=c++11)
> 
> set(sources 
>   vector.cpp
> )
> 
> add_executable(test ${sources})
> target_link_libraries(test pthread)
> target_link_libraries(test gmock)
> target_link_libraries(test gtest)
> 
> -----------------------
> 
> robs-15inch-2:build rob$ rm -rf *
> robs-15inch-2:build rob$ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
> -- The C compiler identification is Clang 5.0.0
> -- The CXX compiler identification is Clang 5.0.0
> -- Check for working C compiler: /usr/bin/cc
> -- Check for working C compiler: /usr/bin/cc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working CXX compiler: /usr/bin/c++
> -- Check for working CXX compiler: /usr/bin/c++ -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Configuring done
> -- Generating done
> -- Build files have been written to: 
> /Users/rob/Projects/Languages/Cpp/clang_tools/vector/build
> robs-15inch-2:build rob$ make
> Scanning dependencies of target test
> [100%] Building CXX object CMakeFiles/test.dir/vector.cpp.o
> Linking CXX executable test
> [100%] Built target test
> robs-15inch-2:build rob$ ./test
> 50
> robs-15inch-2:build rob$ clang-format -style LLVM -i ../vector.cpp 
> robs-15inch-2:build rob$ clang-modernize -summary -p . -include ..
> Parse: /Users/rob/Projects/Languages/Cpp/clang_tools/vector
> /Users/rob/Projects/Languages/Cpp/clang_tools/vector/vector.cpp:1:10: fatal 
> error: 'vector' file not found
> #include <vector>
>          ^
> 1 error generated.
> Error while processing 
> /Users/rob/Projects/Languages/Cpp/clang_tools/vector/vector.cpp.
> Error encountered during translation.
> 
> _______________________________________________
> cfe-users mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users

-- Jean-Daniel





_______________________________________________
cfe-users mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users

Reply via email to