Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
Macos 如何将libgit2编译成OSX应用程序包?_Macos_Unity3d_Libgit2 - Fatal编程技术网

Macos 如何将libgit2编译成OSX应用程序包?

Macos 如何将libgit2编译成OSX应用程序包?,macos,unity3d,libgit2,Macos,Unity3d,Libgit2,Windows的.DLL文件的OSX答案是一个“捆绑包”,或者我一直在读的东西,我不太明白如何开始将libgit2构建成可用的东西 我通常在Windows上工作,并且正在开发一套将在其中使用的插件。到目前为止,插件的形式是Windows.DLL文件。但是,在Mac上使用Unity3D的开发人员无法使用该插件,因为它依赖于内置的本机代码 根据Unity3D在上的文档,我需要以某种方式构建一个本机包。这些说明指向使用XCode来执行设置捆绑包项目的任务,但是当涉及到如何构建它时,我似乎迷失了方向 根

Windows的.DLL文件的OSX答案是一个“捆绑包”,或者我一直在读的东西,我不太明白如何开始将libgit2构建成可用的东西

我通常在Windows上工作,并且正在开发一套将在其中使用的插件。到目前为止,插件的形式是Windows.DLL文件。但是,在Mac上使用Unity3D的开发人员无法使用该插件,因为它依赖于内置的本机代码

根据Unity3D在上的文档,我需要以某种方式构建一个本机
。这些说明指向使用XCode来执行设置捆绑包项目的任务,但是当涉及到如何构建它时,我似乎迷失了方向

根据libgit2项目页面上的文档,我可以使用
cmakegui
实用程序[…]生成特定于平台的构建项目或IDE工作区

然而,生成的XCode项目似乎不是一个
捆绑项目
,而是某种其他类型的项目,至少在我看来是“垃圾文件”

Unity3D描述的包的预期格式是什么


我怎样才能“混合n匹配”来构建一个XCode捆绑包项目,然后从项目的libgit2存储库中的某个地方删除所需的文件,然后点击build以获得我上一个问题中请求的格式?

Windows上的DLL是一个动态库,类似于Mac OS上的
.dylib
。CMake规则将在Mac OS上创建
.dylib

使用默认的gcc目标:

% git clone https://github.com/libgit2/libgit2
% cd libgit2
% mkdir build
% cd build
% cmake ..
% make -j8
% ls -Flas libgit2*.dylib
1348 -rwxr-xr-x  1 ethomson  staff  1379120 Apr  3 16:55 libgit2.0.17.0.dylib*
   4 lrwxr-xr-x  1 ethomson  staff       20 Apr  3 16:55 libgit2.0.dylib@ -> libgit2.0.17.0.dylib
   4 lrwxr-xr-x  1 ethomson  staff       15 Apr  3 16:55 libgit2.dylib@ -> libgit2.0.dylib

如果您使用XCode而不是gcc/clang目标,那么这应该是您正在构建的目标的目录。在我的例子中,
Debug

您现在正在构建Mac
.dylib
吗?您提到Mac用户不能使用
git2.dll
——这当然是真的,您需要先构建一个Mac共享库。我不确定从CMake生成的默认XCode项目文件中到底构建了什么,因为它似乎都是垃圾。如果有
.dylib
,我将尝试筛选并搜索其中的某个地方。如果我能找到它,我就可以将它重命名为
.bundle
,并使用它<代码>libgit2.dylib应该在生成目录中生成。您是否使用默认的CMake生成XCode进行了测试?对不起,我的VNC被锁了,我正忙于工作,现在无法检查。如果您已经构建了默认值,并且看到了
.dylib
,请务必发布您的答案,以便我可以将其标记为已解决。感谢您的帮助。我找到了图书馆,就在你说的地方。然而,统一仍然不承认它,即使在重新命名它之后。我不确定是Unity还是
LibGit2Sharp
。无论如何,你确实回答了我的问题,我必须想出其他办法来让这一切顺利进行。LibGit2Sharp?你在用C#吗?Mono?我用的是C#。我在尝试调用任何
LibGit2Sharp
方法--
System.DLLNotFoundException
时遇到异常。我想我只是不确定
.dylib
是否足以满足这一目的,我还没有弄清楚如何使用生成的动态库创建一个合适的
捆绑包
(只是按照另一篇文章的建议重命名它似乎还不够).core/nativemethods.cs中的libgit2sharp源代码在git2 dll/dylib的
Some/Path/NativeBinaries/[amd64 | x86]/
中查找。不幸的是,我还没有弄清楚什么是
Some/Path/
!在我的系统上,当我从unity内部转储正在执行的程序集的本地路径时,我会得到
/path/to/unityproject/Library/ScriptAssemblies/assembly CSharp Editor.dll
,这是毫无用处的,因为这是unity喜欢使用的目录。