c - 如何使用cmake正确地将libgit2链接到C程序?

标签 c windows cmake libgit2

首先,我只是 CMake 魔法的新手。我只想以 CMake 方式将 libgit2 链接到我的简单 C 程序( FindLibgit2.cmake )。 据我了解cmake documentation我的 CMakeLists.txt 应该如下所示:

project(libgit2test)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
# This variables should be setting up externally, i know - i show them just for example
set (LIBGIT2_LIBRARIES "<path to directory with git2.lib and git2.dll")
set (LIBGIT2_INCLUDE_DIR "<path to libgit2/include>")

find_package(Libgit2 REQUIRED)
include_directories(${LIBGIT2_INCLUDE_DIR})
set(LIBS ${LIBS} ${LIBGIT2_LIBRARIES})
target_link_libraries(${PROJECT_NAME} ${LIBS})

在我的简单程序中,我只调用几个简单的 libgit2函数并得到这个: WARNING: Target "libgit2test" requests linking to directory "<libgit2 build directory>". Targets may link only to libraries. CMake is dropping the item.

我认为问题出在这里:target_link_libraries(${PROJECT_NAME} {$LIBS}) 我尝试将其更改为 git2 ,但我只是得到 can not open file 。 我做错了什么?

附注我正在使用 Visual Studio 2010 编译器、Qt Creator 创建 CMake 项目,并成功构建 libgit2使用 CMake。

最佳答案

删除

set (LIBGIT2_LIBRARIES "<path to directory with git2.lib and git2.dll")
set (LIBGIT2_INCLUDE_DIR "<path to libgit2/include>")

这些变量应由find_package(Libgit2 REQUIRED)设置

关于c - 如何使用cmake正确地将libgit2链接到C程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19479564/

相关文章:

windows - 当我的 Git 存储库在 Linux 上时如何在 Windows IDE 上工作(使用 VMPlayer)

c++ - 如何禁用 win32 'interface' 宏?

c++ - 使用具有 C++ 继承的 CMake 时,应该如何组织目录结构?

c++ - 将用于终端编译的g++命令转换为CMakeLists.txt

c++ - C/C++ 中的日常文件维护工作

python - 使用 Python 从双指针 C++ 函数中读取字符串

windows - Laravel Homestead SSH 远程共享问题

c++ - 将 Makefile 转换为 Tiva C 系列的 CMakeLists.txt

c - 为什么不是所有标准头都以 std 前缀开头?

为字符串分配空间然后将字符插入该空间的正确方法?