如何修复 CMake Protobuf FindThreads only works if either C or CXX language is enabled

问题:

尝试使用以下命令配置 CMake 项目时

CMakeLists_find_protobuf.txt
find_package(Protobuf REQUIRED)

你看到类似这样的错误消息

cmake_findthreads_error.txt
CMake Error at /usr/share/cmake-3.16/Modules/FindThreads.cmake:49 (message):
  FindThreads only works if either C or CXX language is enabled
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindProtobuf.cmake:420 (find_package)
  CMakeLists.txt:7 (find_package)

-- Configuring incomplete, errors occurred!

解决方案

你需要将你的

CMakeLists_project.txt
project(MyProject)

行放在

CMakeLists_find_protobuf_after_project.txt
find_package(Protobuf REQUIRED)

之前如果你没有 project() 行,创建一个。


Check out similar posts by category: C/C++, CMake