首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux是否相当于Windows的“资源文件”?

问Linux是否相当于Windows的“资源文件”?
EN

Stack Overflow用户
提问于 2010-01-04 02:03:16
回答 2查看 25.4K关注 0票数 34

我有一个C库,我为Linux构建了一个共享对象,为MinGW32构建了一个用于Windows的DLL。API依赖于几个数据文件(统计模型),我非常希望将这些文件与SO/DLL一起使用,这样部署就只是一个文件。

看起来我可以用windres编译的“资源文件”来实现这一点,但是接下来我必须为Windows编写一堆资源处理代码,而且我仍然被Linux上的文件困住了。

在Linux上有实现相同功能的方法吗?

更好的是,有没有便携的解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-04 03:23:18

在Linux和其他ELF系统上,它实际上非常简单:http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967

OS有捆绑包,所以您只需将库构建为框架并将文件放入包中即可。

票数 34
EN

Stack Overflow用户

发布于 2010-01-04 03:02:50

有两种可能的解决办法:

  • Phong的sfio库是AT&T高级软件技术工具集的一部分,它是C stdio.h的一个很好的替代,它将允许您使用单个API打开文件或内存块。因此,您可以轻松地将现有文件转换为C初始化数据,以便包含在DLL或大约文件中。 这是一个很好的跨平台的解决方案,但惩罚是,学习曲线的开始是相当高的。他们不容易弄清楚这些东西是如何工作的,也不容易把他们的工具集的一部分分割出来,独立于其他部分来使用。但好消息是,如果您想采用他们的U/Win系统在windows上运行Unix代码(都是同一工具集的一部分),您可以使用相同的系统创建DLL和SOs。
  • 对于这种问题,我经常回到Lua;我可以将Lua数据作为初始化数据存储在外部文件中,也可以存储在C中。这对于分发一个.so文件中的所有内容都是很好的;我是为我的学生这样做的。 同样,缺点是你必须掌握和整合一项新技术。

在我自己的工作中,我使用Lua而不是AT&T,原因如下:

  • Lua的足迹要小得多,并且可以很好地与其他人一起玩;对于AST,您确实必须采用他们的方式来做事情。
  • 使用Lua的学习曲线不那么陡峭,您可以非常快速地提高效率。
  • Lua非常容易安装,而且很容易获得有关它的信息。AST有自己独特的安装过程,在世界上没有其他人共享;通常很难使安装工作;而且很难获得有关它的信息。
  • 使用Lua还有很多其他好处,因此学习Lua和学习如何将Lua合并到C代码中的工作很容易在多个项目中摊销。
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1997172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档