2013-04-03 61 views
2

OSX对Window的.DLL文件的回答是一个'捆绑',或者我一直在阅读,而且我无法弄清楚如何开始将libgit2构建为可用的东西。如何将libgit2编译成OSX应用程序包?

我通常在Windows上工作,并且正在开发一组将在Unity3D内部使用的插件。到目前为止,插件采用Windows .DLL文件的形式。但是,在Mac上使用Unity3D的开发人员无法使用该插件,因为它依赖于构建为libgit2's git2.dll的本机代码。

根据Unity3D的文档Building Plugins for Desktop Platforms,我需要以某种方式构建本地bundle。说明指向使用XCode来执行设置捆绑项目的任务,但是在涉及如何构建它时,我似乎迷失了方向。

每libgit2项目页面上的文档,我可以使用CMake GUI实用程序

[...]产生特定于平台的建设项目或IDE工作

但是获取生成的XCode项目似乎并没有是一个bundle project,而是某种其他类型的项目,至少为了我的目的,它构建了“垃圾文件”。

Unity3D描述了一个包的期望格式是什么?

我该如何构建一个XCode bundle项目,然后从项目中的libgit2存储库中删除所需的文件,然后点击构建以获取请求的格式在我之前的问题中?

+0

你现在在建立一个Mac'.dylib'吗?你提到Mac用户不能使用'git2.dll' - 这当然是真的,你需要先建立一个Mac共享库。 – 2013-04-03 19:49:27

+0

我不确定CMake生成的默认XCode项目文件的内容是什么,因为它看起来都是垃圾。如果在某处存在'.dylib',我会尝试筛选并检查。如果我能找到,我可以将其重命名为'.bundle',[根据这篇文章](http://answers.unity3d.com/questions/23615/how-to-make-unity-find -dylib-files.html)并使用它。有 – 2013-04-03 20:42:20

+0

有。应该在你的build目录下生成'libgit2.dylib'。 – 2013-04-03 21:29:53

回答

2

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 [email protected] -> libgit2.0.17.0.dylib 
    4 lrwxr-xr-x 1 ethomson staff  15 Apr 3 16:55 [email protected] -> libgit2.0.dylib 

如果您使用的,而不是在gcc /铛目标的XCode,这应该是你正在构建的目标目录。在我的情况下,Debug

+0

感谢您的协助。我找到了图书馆,就在你说的地方。但是,即使重命名后,Unity依然不认识它。我不确定它是Unity还是'LibGit2Sharp'。无论如何,你确实回答了我的问题,而且我必须找出其他方法来完成这一切。 – 2013-04-04 03:30:37

+0

LibGit2Sharp?你在使用C#吗?单? – 2013-04-04 12:24:55

+0

我正在使用C#。当试图调用任何'LibGit2Sharp'方法 - System.DLLNotFoundException时,我得到一个异常。我想我只是不确定是否。dylib'已经足够用于这个目的了,而且我还没有想出如何使用生成的动态库创建一个合适的'bundle'(仅仅将它重命名为另一个帖子似乎是不够的)。 – 2013-04-04 23:39:19

相关问题