我正在尝试在Windows 10 x64上以发布模式构建libgit2。
在我的libgit2目录中,运行以下命令:
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
据我所知,它仍然以调试模式构建。至少当我将它链接到Visual Studio项目时,它会在调试断言上失败。
我也试过
cmake -G "Visual Studio 12 Win64" -DCMAKE_BUILD_TYPE=Release ..
无济于事。
我甚至尝试通过在我的解决方案中包含所有.vxcproj
文件并手动在发布模式下构建它们来使其工作。没有运气了。
它应该像传递-DCMAKE_BUILD_TYPE=Release
旗帜那样简单,还是我错过了什么?
我真正想做的就是让git2.dll
在运行时保持调试断言的爆炸性。至少我认为这就是正在发生的事情。
以下是我尝试从Visual Studio 2013项目运行的代码,我在git2.lib
中链接并引用git2.dll
提到here
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
const char *path = "C:/Dev/testing/brokenmerge";
git_repository *repo = NULL;
git_repository_open(&repo, path);
printf("Opened repo: '%s'\n", path);
git_repository_free(repo);
return 0;
}
其中stdafx.h
包含<git2.h>
我在git_repository_open
:
Assertion failed!
Program: C:\Dev\testing\libgit2tests\Debug\git2.dll
File: C:\Dev\libgit2\src\global.c
Line: 202
Expression: git_atomic_get(&git__n_inits) > 0
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts
因此,除非我错误地链接到git2
或我做错了其他事情,否则我不知道如何继续。
谢谢!