wxWidgets:要 link 哪些文件?

wxWidgets: Which files to link?

我正在学习 C++,为此,我正在编写一个示例 wxWidgets 应用程序。

但是,我可以在 wxWidgets 网站上找到的 none 文档告诉我要传递给链接器的库名称。

现在,除了 wxWidgets 之外,我 should/would 是否有一般的经验法则或其他约定,对于任何库,我要链接的对象文件的名称是什么?

经过更多的谷歌搜索,我在 wxWidgets wiki 上找到了一个与 Code::Blocks IDE 有关的页面,但它也适用于我。通过将以下内容添加到 linker 选项,它会选择所有必要的文件到 link:

`wx-config --libs`

(所以这并没有解决我的 "general rule" 问题;对于我正在使用的任何库,我仍然必须找出要 link 反对的文件,但至少这解决了问题对于 wxWidgets)。

每个平台的构建说明都不同,因此您需要参考特定于平台的文件,例如 docs/gtk/install.txt (which mentions wx-config) or docs/msw/install.txt 以找到它们。

FWIW wxWidgets 项目也肯定会感激地接受主要手册的任何补丁,以改进文档的组织。

我们有更多的 "rule of ring finger",而不是拇指

一般来说,如果你手动编译这个库,它会产生几个库文件(通常是 .a .lib 或类似的东西,完全取决于你的编译器和你的./configure)这些是由于 makefile 的构建脚本而产生(通常)。

现在可以按照开发人员喜欢的任何方式编辑 makefile,但是有一些很好的约定(事实上,a standard) many follow- and there are tools to auto generate the make files for the library (see automake

Makefile 通常一致

您可以简单地使用 makefile 来生成文件,如果符合要求,文件将被放置在一个特定的文件夹中(我相信是 lib 文件夹?)所有这些都已排队等待使用!

请记住,库文件只是您代码的预编译格式的实现,您可以使用 ar 工具很容易地从您的代码中自行创建一个库。因为它是代码,就像任何其他代码一样,您不一定要包含给定库的 所有 库文件。例如对于 wxWidgets,如果您不使用富文本,您当然不想通过包含该库文件在最终可执行文件中浪费额外的 space。以后如果要使用,可以添加到你的项目中(就像添加一个.cpp文件一样)

哦,还有 wxWidgets,在他们的(很棒的)documentation, each module 中会说明 header 你需要包含什么,以及它是哪个库的一部分。

幸福

图书馆是神奇的、神奇的、幸福的独角兽。只是尽量不要对他们太失望,他们会在您余下的编程生涯中尽情发挥您的想象力!