cmakeを使ってBoost::Threadを使用するプロジェクトの
Makefile
を作成しようとしたところ,初回は以下のエラーが,
CMake Error at /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/CheckIncludeFiles.cmake:79 (try_compile):
Unknown extension ".c" for file
/Users/mjhd/Projects/trax-stable/trax-viewer/CMakeFiles/CMakeTmp/CheckIncludeFiles.c
try_compile() works only for enabled languages. Currently these are:
See project() command to enable other languages.
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindThreads.cmake:123 (CHECK_INCLUDE_FILES)
/usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/CMakeFindDependencyMacro.cmake:65 (find_package)
cmake/FindBoost.cmake:1401 (find_dependency)
CMakeLists.txt:22 (find_package)
-- Looking for include file pthread.h - not found
CMake Error at /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindThreads.cmake:204 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
/usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/CMakeFindDependencyMacro.cmake:65 (find_package)
cmake/FindBoost.cmake:1401 (find_dependency)
CMakeLists.txt:22 (find_package)
二回目以降は以下のエラーが,
CMake Error at /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
/usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindThreads.cmake:204 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
/usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/CMakeFindDependencyMacro.cmake:65 (find_package)
cmake/FindBoost.cmake:1401 (find_dependency)
CMakeLists.txt:22 (find_package)
表示されるようになった.
しかも,この現象が起こるのは
Mac
上のcmakeだけ
2日間
悩んだ挙句,解決策を発見した.
project(YOUR_PROJECT CXX)
などと書いてある部分を,
project(YOUR_PROJECT CXX C)
と変更し,
CMakeFilesディレクトリ,CMakeCache.txtファイルなどを削除してから,
再びcmake .を行う.(重要)