CMake指定--target报错:源目录不存在,求技术解答
问题原因与解决方法
你的问题出在混淆了CMake配置阶段和构建阶段的命令逻辑:
cmake ..是CMake的配置命令,作用是根据源码目录的CMakeLists.txt,在当前构建目录生成Makefile(或其他构建系统文件),这个阶段不需要指定编译目标。- 你想用的
--target参数是CMake构建阶段的参数,不能直接加在配置命令后面。
正确的指定目标编译方式
有两种合法的方式可以编译指定目标:
- 用构建工具直接指定目标(就是你之前成功的方式):
cmake .. make -j8 cytosim
- 用CMake的统一构建命令(跨平台通用,适配Makefile、Ninja等各类构建系统):
# 先完成配置(仅需执行一次) cmake .. # 再用cmake --build指定目标编译 cmake --build . --target cytosim -j8
为什么之前的命令报错
当你执行cmake .. --target cytosim时,CMake会错误地将cytosim识别为源目录路径,而非要编译的目标——它误以为你要从../cytosim这个源目录生成构建系统,因此提示该目录不存在。
内容的提问来源于stack exchange,提问作者SergeD
相关产品推荐
相关产品推荐

