Windows11 x64下构建libgit2失败求助:CMake报无目标源文件错
在Windows 11 x64上构建libgit2解决"No SOURCES given to target"错误
问题描述
在Windows 11 x64系统上构建libgit2库时,执行以下CMake命令:
cmake .. -DBUILD_TESTS=OFF -DBUILD_SHARED_LIBS=ON
收到一系列错误:
CMake Error at deps/http-parser/CMakeLists.txt:4 (add_library): No SOURCES given to target: http-parser CMake Error at deps/xdiff/CMakeLists.txt:5 (add_library): No SOURCES given to target: xdiff CMake Error at deps/zlib/CMakeLists.txt:6 (add_library): No SOURCES given to target: zlib CMake Error at src/libgit2/CMakeLists.txt:4 (add_library): No SOURCES given to target: libgit2 CMake Error at src/util/CMakeLists.txt:3 (add_library): No SOURCES given to target: util
解决步骤
拉取缺失的子模块依赖
libgit2的http-parser、xdiff、zlib等依赖通过Git子模块管理,若克隆仓库时未加--recursive参数,这些依赖目录会是空的,导致CMake找不到源文件。在libgit2仓库根目录执行:git submodule update --init --recursive确保构建目录规范
必须在独立的构建目录(比如新建的build文件夹)内执行CMake命令,避免在libgit2根目录直接构建引发路径冲突。标准流程:mkdir build && cd build cmake .. -DBUILD_TESTS=OFF -DBUILD_SHARED_LIBS=ON清理CMake缓存后重试
若之前执行CMake失败,残留的缓存文件可能干扰新构建。删除构建目录下的CMakeCache.txt文件和CMakeFiles文件夹,重新运行CMake命令。
内容的提问来源于stack exchange,提问作者TheVoid
相关产品推荐
相关产品推荐

