Linux下的#pragma comment(lib,"xxx.lib")等效?

Jic*_*hao 56 gcc static-linking

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

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

Mar*_*off 20

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

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

  • "正确的编译取决于链接顺序." - 否,正如链接文章所述,正确的链接取决于链接顺序. (7认同)
  • 对于某些(如果不是全部)Windows编译器也是如此.但是,这样的pragma是__bad__ (2认同)

小智 19

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

仅仅因为#pragma comment(lib,"xxx.lib")在源文件中并不意味着编译器会消耗它.实际上,它作为注释进行,随后由链接器使用.和*nix差别不大.

  • 你并不完全正确,有些情况比如使用ROOT(root.cern.ch),这可能会非常有用. (2认同)