我正在学习C ++,为了做到这一点,我正在编写一个示例wxWidgets应用程序。
但是,我在wxWidgets网站上找不到的文档都没有告诉我要传递给链接器的库名。
现在,除了wxWidgets之外,是否有一般的经验法则或我应该/将要知道的其他约定,对于任何库,我要链接的目标文件的名称是什么?
答案 0 :(得分:0)
经过一段时间的谷歌搜索后,我在wxWidgets wiki上找到了一个与Code :: Blocks IDE相关的页面,但这也适用于我。通过将以下内容添加到链接器选项,它将获取要链接的所有必需文件:
`wx-config --libs`
(因此,这不能解决我的"一般规则"问题;对于我正在使用的任何库,我仍然需要找出要链接的文件,但至少这解决了wxWidgets的问题)。
答案 1 :(得分:0)
每个平台的构建说明都不同,因此您需要引用特定于平台的文件,例如docs/gtk/install.txt(提及wx-config
)或docs/msw/install.txt来查找它们。 / p>
FWIW wxWidgets项目也肯定会感谢接受主要手册的任何补丁,以改善文档的组织。
答案 2 :(得分:0)
我们有更多的无名指"而不是拇指
通常,如果您手动编译库,它将生成几个库文件(通常.a
.lib
或类似的东西,完全取决于您的编译器和./configure)这些文件生成(通常)因为makefile的构建脚本。
现在可以以开发人员喜欢的任何方式编辑makefile,但是有一些很好的约定(事实上,a standard)很多跟随 - 并且有一些工具可以自动生成make文件。图书馆(见automake)
Makefile通常一致
您可以简单地使用makefile生成文件,如果符合要求,文件将被放置在特定的文件夹中(我相信的lib文件夹?)排队等待准备使用!
请记住,库文件只是以预编译格式实现代码,您可以使用ar
工具轻松地从代码中自行创建库。因为它是代码,就像任何其他代码一样,您不一定要包含给定库的所有库文件。例如,对于wxWidgets,如果您不使用富文本,那么您肯定不想通过包含该库文件来浪费最终可执行文件中的额外空间。稍后如果您想使用它,可以将其添加到项目中(就像添加.cpp
文件一样)
哦,还有wxWidgets,在他们的(奇妙的)documentation中,each module会说出你需要包含什么标题,以及它所属的库。
<强>幸福强>
图书馆是惊人的,神奇的,幸福的独角兽。尽量不要对他们太过沮丧,他们会在你想象的领域中为你的其他编程生涯做好准备!