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
libgit2使用libssh2生成问题:找不到libssh2。如果安装在默认搜索路径之外,请设置CMAKE_前缀_路径_Cmake_Libgit2_Libssh2 - Fatal编程技术网

libgit2使用libssh2生成问题:找不到libssh2。如果安装在默认搜索路径之外,请设置CMAKE_前缀_路径

libgit2使用libssh2生成问题:找不到libssh2。如果安装在默认搜索路径之外,请设置CMAKE_前缀_路径,cmake,libgit2,libssh2,Cmake,Libgit2,Libssh2,我正在尝试使用visual studio命令提示符2010在windows 8上构建libgit2的源代码。我还成功地在计算机上编译并安装了libssh2源代码 libssh2安装路径:C:\Program Files(x86)\libssh2 每当我执行命令cmake时。。对于libgit2 CMake.list,我得到的输出是LIBSSH2未找到。如果安装在默认搜索路径之外,请设置CMAKE_前缀_路径。 我尝试了几个关于stackoverflow的建议,但是没有运气。我还尝试将libssh

我正在尝试使用visual studio命令提示符2010在windows 8上构建libgit2的源代码。我还成功地在计算机上编译并安装了libssh2源代码

libssh2安装路径:C:\Program Files(x86)\libssh2

每当我执行命令cmake时。。对于libgit2 CMake.list,我得到的输出是LIBSSH2未找到。如果安装在默认搜索路径之外,请设置CMAKE_前缀_路径。

我尝试了几个关于stackoverflow的建议,但是没有运气。我还尝试将libssh2编译文件夹(包括子目录(include、lib和share))放在libgit2的cmake/Modules文件夹中

有人建议我在CMakelist.txt中配置外部依赖项的正确方法是什么,以便在libgit2中包含libssh2模块


提前谢谢

CMake脚本使用
pkg config
查找依赖项(对于基本安装附带的库,有一些特定于操作系统的例外情况),因此,如果libssh2位于
pkg config
要查看的位置之外,则必须设置
pkg\u config\u路径

请注意,如果您在mingw环境中构建了libssh2,那么它可能无法与MSVC构建的libgit2一起工作


master
0.22
版本中,您还可以通过将
embed_SSH_PATH
设置为libssh2的最新版本,将libssh2嵌入libgit2 dll,该版本可以使用Windows的加密库而不是OpenSSL。但是,如果您可以构建libssh2 dll,那么这是首选选项。

libssh2
.pc
文件位于何处?(可能位于此库的安装路径下)。尝试将CMAKE_PREFIX_PATH设置到目录,其中该文件为:
CMAKE-DCMAKE_PREFIX_PATH=
@Tsyvarev:Yes.pc文件位于C:\Program Files(x86)\libssh2\lib\pkgconfig目录中,我也设置了CMAKE_PREFIX_PATH,但没有任何效果,从
pkg\u check_modules
可以看出,
lib/pkgconfig
后缀是自动添加的。是否可以尝试将CMAKE_PREFIX_PATH改为
C:\Program Files(x86)\libssh2
?@Tsyvarev:尝试更改和检查,仍然是相同的错误。。。。。!看起来很奇怪。实际上,您需要调整
pkg config
工具来找到您的
libssh2
库。对于achive,我知道的唯一方法是设置
PKG\u CONFIG\u PATH
environment变量。您可以使用它,为它分配
.pc
文件的不同子路径。一旦成功,在同一环境下运行时,
libgit2
的配置应该会成功。您能告诉我从哪里可以获得0.22版本的源代码吗?我有pull master branch,但它的版本高于0.22。如果你已经克隆了,你已经有了版本,签出v0.22.3标记,或者转到项目的GitHub页面,单击“发布”,然后选择你想要的版本。谢谢你的建议,我现在可以获得0.22版本了。我只是在编译它,它还说“协议不受支持”。现在我使用的是简单的Http存储库url,而不是SSH。我的repo url类似于,但每当我使用git_clone方法时,它都会抛出错误请求失败,状态代码为:401。但当我在Git Bash上尝试相同的url时,它成功克隆了。我正在使用git_cred_userpass_明文_设置凭据的新方法。你能告诉我我做错了什么吗?对我的上述评论有什么建议吗?这意味着服务器不接受凭据。仔细检查用户名和密码,以及是否需要特定令牌才能通过Git而不是网页进行访问。