Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在构建主项目之前,是否有方法构建外部CMake项目?_Macos_Cmake_Build - Fatal编程技术网

Macos 在构建主项目之前,是否有方法构建外部CMake项目?

Macos 在构建主项目之前,是否有方法构建外部CMake项目?,macos,cmake,build,Macos,Cmake,Build,我在macOS上有两个CMake项目——主项目和一个外部库。这两个项目都是在我的机器上克隆的。我想将外部库作为依赖项添加到主项目中。我还想让主项目构建外部库。这对CMake有可能吗 另外,我找到的所有示例都是先下载外部库 编辑: ExternalProject_Add(<lib_name> SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/<rel_path_to_src>

我在macOS上有两个CMake项目——主项目和一个外部库。这两个项目都是在我的机器上克隆的。我想将外部库作为依赖项添加到主项目中。我还想让主项目构建外部库。这对CMake有可能吗

另外,我找到的所有示例都是先下载外部库

编辑:

ExternalProject_Add(<lib_name>
                    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/<rel_path_to_src>
                    BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/<rel_path_to_build_dir>
                    BUILD_ALWAYS ON)
ExternalProject\u添加(
SOURCE\u DIR${CMAKE\u CURRENT\u SOURCE\u DIR}/
二进制目录${CMAKE\u CURRENT\u SOURCE\u DIR}/
构建(始终打开)
这是我添加的外部项目。但我不知道如何正确链接该库,以便它可以在主项目之前构建

我尝试链接如下:

find_library( LIB <lib_name> HINTS ${CMAKE_CURRENT_SOURCE_DIR}/<rel_path_to_lib_dir>)
target_link_libraries( ${PROJECT_NAME} PRIVATE ${LIB} )
find_库(LIB提示${CMAKE_CURRENT_SOURCE_DIR}/)
目标链接库(${PROJECT\u NAME}PRIVATE${LIB})
我收到以下错误:

ninja: error: '<path_to_lib>/lib.a', needed by '<executable>', missing and no known rule to make it
ninja:错误:'/lib.a',由''所需,缺少并且没有已知的规则来创建它

命令允许您在构建外部项目的同时构建外部项目。例如,见问题:@Tsyvarev谢谢你的回答。但是我仍然看不出它如何处理已经下载的项目。哦,你的问题实际上是“如何对已经下载的项目使用
ExternalProject
?”。只需传递
SOURCE\u DIR
参数,该参数指向您下载的库,并且不指定像
URL
这样的下载步骤。如果您能为我提供一个示例代码,那将非常令人惊讶。因为某些原因,我无法配置它。我可能做错了什么。你可以在发帖时添加代码(也可以添加由它引起的错误消息)。所以我们可以帮你解决问题。