63

我有一个名为 的静态库文件libunp.a,我知道我可以gcc -lunp xx用来链接到该库。

我可以#pragma comment(lib,"xxx.lib")用来告诉 Microsoft C/C++ 编译器包含该库;我怎么能在 Linux/GCC 下做到这一点?

4

3 回答 3

28

在 pragmas 的GCC 手册页面中似乎没有提到任何等效的 pragma 。

我看到 GCC 不支持源代码链接的一个原因是,有时,正确的链接取决于链接顺序;这将要求您确保无论编译顺序如何,链接顺序都正确发生。如果你要做那么多工作,我想你也可以在命令行(或其他方式)上传递链接器参数。

于 2009-11-06T03:35:39.927 回答
21

应在链接步骤中指定库。这些信息根本不属于翻译单元。即使没有链接阶段,翻译单元也可以进行预处理、编译和组装。

仅仅因为#pragma comment(lib,"xxx.lib")在源文件中并不意味着编译器会使用它。事实上,它作为注释进入,随后被链接器使用。与 *nix 没有太大区别。

于 2010-11-26T12:23:22.860 回答
0

使用此 GCC 标志为未知编译指示生成错误。它会很快告诉你编译器是否理解它。

-Werror=unknown-pragmas

于 2018-09-21T21:03:34.993 回答