因此尝试在windows上使用libgit,我已经构建了一个有效的libssh2但是我在编译libgit时遇到了这个错误
现在我已经尝试设置默认前缀路径,我已经尝试设置库路径,但我不能让它看到我的libssh2?任何想法?
它变得非常令人沮丧,因为我在这里它并且它无法找到它:D
也许有人可以告诉我应该安装正确的路径?
亲切的问候 罗布
****************更新1 ****************
所以我退出了make文件这....似乎已经改变但是我可以看到PKG_CHECK_MODULES(LIBSSH2 libssh2)是检查,也许它没有设置LIBSSH2_FOUND?
# Optional external dependency: libssh2
IF (USE_SSH)
PKG_CHECK_MODULES(LIBSSH2 libssh2)
ENDIF()
IF (LIBSSH2_FOUND)
ADD_DEFINITIONS(-DGIT_SSH)
INCLUDE_DIRECTORIES(${LIBSSH2_INCLUDE_DIRS})
LINK_DIRECTORIES(${LIBSSH2_LIBRARY_DIRS})
LIST(APPEND LIBGIT2_PC_LIBS ${LIBSSH2_LDFLAGS})
#SET(LIBGIT2_PC_LIBS "${LIBGIT2_PC_LIBS} ${LIBSSH2_LDFLAGS}")
SET(SSH_LIBRARIES ${LIBSSH2_LIBRARIES})
CHECK_LIBRARY_EXISTS("${LIBSSH2_LIBRARIES}" libssh2_userauth_publickey_frommemory "${LIBSSH2_LIBRARY_DIRS}" HAVE_LIBSSH2_MEMORY_CREDENTIALS)
IF (HAVE_LIBSSH2_MEMORY_CREDENTIALS)
ADD_DEFINITIONS(-DGIT_SSH_MEMORY_CREDENTIALS)
ENDIF()
ELSE()
MESSAGE(STATUS "LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.")
ENDIF()
我试过设置LIBSSH2_INCLUDE_DIRS / LIBSSH2_INCLUDE_DIR和LIBSSH2_LIBRARIES无效?
****************更新2 ****************
因此,他们搜索了.pc文件。好吧,我发现它....直接指向它,它仍然无法找到它?我甚至指出了它的几个目录。 pc文件中的路径似乎与我期望的位置相匹配。这个make文件刚刚完成了吗?
checking for module 'libssh2'
package 'libssh2' not found
LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.
****************更新3 ****************
所以更新3我在windows上安装了openssl的二进制文件,进一步下载了libssh2-master并使用cmake gui构建了一个没有错误的可视化工作室解决方案,编译和构建了解决方案。我从解决方案中安装并打包并安装在建议的默认位置,我还将头文件和库文件放在我的vc文件夹中,一旦我尝试构建共享库并将dll放在system32等中所以香港专业教育学院尝试了很多:) libgit仍然无法找到它 希望更多信息
****************更新4 ****************
所以最后把它修好了......我回过头来看看git历史并指责make文件。发现有人最初用FIND_PACKAGE写了它,但改变了它以满足自己的需要。
所以我改回来并使用了下面的内容。不再抱怨并找到它需要的东西并编译和工作。所以,谢谢你的帮助
IF (USE_SSH)
FIND_PACKAGE(LIBSSH2)
ENDIF()
IF (LIBSSH2_FOUND)
ADD_DEFINITIONS(-DGIT_SSH)
INCLUDE_DIRECTORIES(${LIBSSH2_INCLUDE_DIR})
LINK_DIRECTORIES(${LIBSSH2_LIBRARY_DIRS})
LIST(APPEND LIBGIT2_PC_LIBS ${LIBSSH2_LDFLAGS})
SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} libssh2")
SET(SSH_LIBRARIES ${LIBSSH2_LIBRARIES})
ADD_DEFINITIONS(-DGIT_SSH_MEMORY_CREDENTIALS)
ENDIF()
答案 0 :(得分:0)