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

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

有帮助吗?

解决方案

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

这并不是说这样的编译甚至是有意义的。图书馆应在链接步骤中指定。这些信息根本没有翻译单元内的归属。一个翻译单元可以进行预处理,编译的和没有连接阶段甚至组装。由Visual Studio中使用的工具链允许这是因为它是新空房禁地和总是执行链接。

您可能想保存自己的一些繁琐的输入,并为您的项目生成文件: GNU使手动

其他提示

中似乎没有提到任何等效的实用程序 GCC 手册中关于编译指示的页面.

我发现 GCC 不支持源代码中的链接的原因之一是,有时, 正确的链接 依靠 按链接顺序;这需要您确保无论编译顺序如何,链接顺序都会正确发生。我想,如果您要做那么多工作,您也可以在命令行(或其他方式)上传递链接器参数。

  

图书馆应在连接步骤中指定。这些信息简单地   翻译单元内不属于。一个翻译单元可进行预处理,   编译和甚至组装没有连接阶段。

很简单,因为#pragma comment(lib,"xxx.lib")是源文件中并不意味着,编译器会消耗它。事实上,它会作为一个评论,随后被链接器使用。比* nix中没有太大的不同。

使用此GCC标志产生的未知pragma错误。它会迅速告诉你,如果编译器理解它。

-Werror=unknown-pragmas

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top