#pragma评论(lib,“xxx.lib”)等同于Linux下?

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

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

简单; 你不能。 GCC没有这样的等价物。 指定-l作为gcc参数,创build一个链接器脚本,调用ld ,调用911或其他。

这不是一个这样的杂注甚至是有道理的。 在链接步骤中应该指定库。 这些信息根本不属于翻译单位。 翻译单元可以进行预处理,编译和组装,即使没有连接阶段。 Visual Studio使用的工具链允许这样做,因为它是braindead并始终执行链接。

您可能想节省一些繁琐的input,并为您的项目创build一个MakeFile: GNU Make Manual

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

只是因为#pragma comment(lib,"xxx.lib")在源文件中并不意味着编译器会使用它。 事实上,它作为一个评论,随后被链接器使用。 与* nix没有什么不同。

关于编译指南的GCC手册页面上似乎没有提及任何等效的编译指示 。

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