我有一个名为libunp.a
的静态库文件,我知道我可以使用gcc -lunp xx
链接到库。
我可以使用#pragma comment(lib,"xxx.lib")
告诉Microsoft C / C ++编译器包含库;我怎么能在Linux / GCC下做到这一点?
答案 0 :(得分:20)
GCC manual's page on pragmas中似乎没有提及任何等效的编译指示。
我看到GCC不支持源代码链接的一个原因是有时,correct linking depends on link order;这将要求您确保无论编译顺序如何都能正确发生链接顺序。如果你要做那么多工作,你可以在命令行(或其他方面)传递链接器参数,我想。
答案 1 :(得分:19)
应在链接步骤中指定库。这样的信息简单 不属于翻译单位。翻译单元可以预处理, 即使没有连接阶段也可以编译和组装。
仅仅因为#pragma comment(lib,"xxx.lib")
在源文件中并不意味着编译器会消耗它。实际上,它作为注释进行,随后由链接器使用。与* nix没什么不同。
答案 2 :(得分:0)
使用此GCC标志为未知的编译指示生成错误。它会迅速告诉您编译器是否理解。
-Werror=unknown-pragmas
答案 3 :(得分:-3)
简单;你不能。 GCC没有这样的等价物。指定-l作为gcc参数,创建链接描述文件,调用ld
,调用911或其他任何内容。
并不是说这样的pragma甚至是有意义的。应在链接步骤中指定库。这些信息根本不属于翻译单元。即使没有链接阶段,也可以对翻译单元进行预处理,编译和组装。 Visual Studio使用的工具链允许这样做,因为它是脑and并且总是执行链接。
您可能希望为自己节省一些繁琐的输入并为项目创建MakeFile:GNU Make Manual