#pragma comment(lib, “xxx.lib”) 在 Linux 下等效吗?
-
18-09-2019 - |
题
我有一个名为的静态库文件 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
不隶属于 StackOverflow