Xcode 10更新后CMake找不到stdc ++ 11

时间:2018-09-25 16:29:57

标签: c++ xcode cmake

我有一个使用SFML的CMake项目,该项目运行良好,但是更新到Xcode 10后,找不到CMake寻找的所有编译器文件。

clang: warning: libstdc++ is deprecated; move to libc++

我不确定如何移动到其他lib源。

我尝试使用set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=libc++")使用该标志。

它也告诉我:Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- broken。我可以在终端中正常运行g++/c++命令。我认为他们正在同一地点被寻找。

我要编译的CMake文件。其SFML之一: SFML CMake

完整错误消息:

-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++                                                                               
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- broken

CMake Error at /Applications/CMake.app/Contents/share/cmake-3.7/Modules/CMakeTestCXXCompiler.cmake:44 (message):                                                                                            
  The C++ compiler                                                                                                                                                                                          
  "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++"                                                                                                              
  is not able to compile a simple test program.                                                                                                                                                             

  It fails with the following output:                                                                                                                                                                       

   Change Dir: /Users/DSchana/Documents/Libraries/SFML/build/CMakeFiles/CMakeTmp



Run Build Command:"/usr/bin/make" "cmTC_af3d5/fast"

  /Applications/Xcode.app/Contents/Developer/usr/bin/make -f
  CMakeFiles/cmTC_af3d5.dir/build.make CMakeFiles/cmTC_af3d5.dir/build

  Building CXX object CMakeFiles/cmTC_af3d5.dir/testCXXCompiler.cxx.o


  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
  -arch x86_64 -isysroot
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.07.sdk
  -mmacosx-version-min=10.7 -o
  CMakeFiles/cmTC_af3d5.dir/testCXXCompiler.cxx.o -c
  /Users/DSchana/Documents/Libraries/SFML/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx


  warning: include path for stdlibc++ headers not found; pass '-std=libc++'
  on the command line to use the libc++ standard library instead
  [-Wstdlibcxx-not-found]

  1 warning generated.

  Linking CXX executable cmTC_af3d5

  /Applications/CMake.app/Contents/bin/cmake -E cmake_link_script
  CMakeFiles/cmTC_af3d5.dir/link.txt --verbose=1


  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
  -arch x86_64 -isysroot
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.07.sdk
  -mmacosx-version-min=10.7 -Wl,-search_paths_first
  -Wl,-headerpad_max_install_names
  CMakeFiles/cmTC_af3d5.dir/testCXXCompiler.cxx.o -o cmTC_af3d5

  clang: warning: libstdc++ is deprecated; move to libc++ with a minimum
  deployment target of OS X 10.9 [-Wdeprecated]

  ld: library not found for -lstdc++

  clang: error: linker command failed with exit code 1 (use -v to see
  invocation)

  make[1]: *** [cmTC_af3d5] Error 1

  make: *** [cmTC_af3d5/fast] Error 2





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:47 (project)


-- Configuring incomplete, errors occurred!

1 个答案:

答案 0 :(得分:2)

好的。原来我只需要将set(CMAKE_CXX_FLAGS "-stdlib=libc++")添加到我的CMakeLists.txt