我正在学习C++,为此编写了一个样例wxWidgets应用程序。
但是,在wxWidgets网站上找到的所有文档都没有告诉我应该向链接器传递什么库名称。
除了wxWidgets之外,是否有一般的经验法则或其他约定,让我知道任何库的目标文件名称是什么,以便进行链接?
经过更多的谷歌搜索,我在wxWidgets维基上找到了一篇与Code::Blocks IDE相关的页面,但对我也有效。通过将以下内容添加到链接器选项中,它可以获取所有必要的文件以进行链接:
`wx-config --libs`
< p >(所以这并没有解决我的“通用规则”问题;对于我正在使用的任何库,我仍然必须找出要链接哪些文件,但至少这解决了wxWidgets的问题)。< /p >
wx-config
)或docs/msw/install.txt来查找它们。我们更多地遵循“无名指规则”,而不是拇指规则
通常,如果您手动编译库,它将生成几个库文件(通常是.a
.lib
或类似的文件,完全取决于编译器和您的 ./configure),这些文件是由makefile的构建脚本生成的(通常)。
现在,可以以任何开发者想要的方式编辑makefile,但有一些好的惯例(事实上有一个标准),许多人都会遵循,并且有工具可自动生成库的makefile(请参见automake)
Makefiles通常是一致的
您可以简单地使用makefile来生成文件,如果符合规范,则文件将被放置在特定文件夹中(我认为是lib文件夹?),所有文件都排队等待使用!
请记住,库文件只是您的代码的预编译格式实现,您可以使用ar
工具轻松地从您的代码创建一个库。因为它是代码,就像任何其他代码一样,您不一定想要包含给定库的所有库文件。例如,在使用wxWidgets时,如果您不使用富文本,则肯定不希望通过包含该库文件来浪费最终可执行文件中的额外空间。稍后,如果您想使用它,可以将其添加到您的项目中(就像添加.cpp
文件一样)。