繁体   English   中英

静态库GNUSTEP和正确的链接

[英]Static library GNUSTEP and correct linking

我当时正在通过gnustep检查Objective-C的可移植性,并遇到了一些问题...我的意思是,一切都可以在我的2台机器上运行,但是主要的问题是我的应用程序是否在未预先安装gnustep的平台上运行。所以我想用静态库来构建它。 但是我遇到了几个问题:

1.)我在/ usr / local / lib下找不到静态库,所以问题来了,它们甚至存在于gnustep中吗?

2.)如果有可用的静态库,如何将其正确集成到我的gcc命令中?

sudo gcc -o main main.m GameRef.m SDLApplication.m SDLEvent.m SDLImage.m SDLMap.m SDLSprite.m Settings.m Utility.m -I -static `gnustep-config --variable=GNUSTEP_SYSTEM_HEADERS` -L `gnustep-config --variable=GNUSTEP_SYSTEM_LIBRARIES` -lgnustep-base -lSDL -fconstant-string-class=NSConstantString  -std=c99 2>logFile

我当前正在使用Ubuntu 12.04LTS,并在一台计算机上安装了SDL和Gnustep,因此应用程序可以正常运行...但是在第二台计算机上却无法运行,因为缺少共享库,因此我需要将它们添加为静态库,但是怎么添加呢?

/ usr / local / lib和其他系统“ lib”目录中的库将是动态的。 它们不能用作静态(AFAIK),找到它们并没有真正的帮助。

我不是GNUstep的专家,但听起来您缺少Objective-C运行时。 您将需要下载GNUstep库和框架的源代码,然后自己将其编译为静态库。

确实,将所有这些框架包装到您的应用程序中只会为您和您的最终用户增加不必要的工作。 存在动态库是有目的的。 没有理由在文件系统上具有相同代码的多个副本。 只需将GNUstep作为依赖项即可。 尽管这对用户来说是一个小痛苦,但他们只需要执行一次,对于大多数发行版,安装仅需一两个命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM