我有一个名为libunp.a的静态库文件,我知道我可以使用gcc -lunp xx链接到库。我可以使用#pragma comment(lib,"xxx.lib")来告诉Microsoft C/C++编译器包含该库;在Linux/GCC下如何做到这一点呢?
libunp.a
gcc -lunp xx
#pragma comment(lib,"xxx.lib")
5rgfhyps1#
在GCC manual's page on pragmas中似乎没有提到任何等效的杂注。我看到GCC不支持源代码中的链接的一个原因是,有时,correct linking depends on link order;这需要你确保链接顺序正确,无论编译顺序如何。如果你要做那么多工作,你还不如在命令行上传递链接器参数(或其他方式),我想。
2j4z5cfb2#
库应该在链接步骤中指定。这些信息根本不属于翻译单元。即使没有链接阶段,翻译单元也可以进行预处理,编译和组装。仅仅因为#pragma comment(lib,"xxx.lib")在源文件中并不意味着编译器会使用它。事实上,它作为注解进入,随后被链接器使用。与 *nix没有太大区别。
mzaanser3#
使用这个GCC标志为未知的杂注生成一个错误。它会很快告诉你编译器是否理解它。第一个月
3条答案
按热度按时间5rgfhyps1#
在GCC manual's page on pragmas中似乎没有提到任何等效的杂注。
我看到GCC不支持源代码中的链接的一个原因是,有时,correct linking depends on link order;这需要你确保链接顺序正确,无论编译顺序如何。如果你要做那么多工作,你还不如在命令行上传递链接器参数(或其他方式),我想。
2j4z5cfb2#
库应该在链接步骤中指定。这些信息根本不属于翻译单元。即使没有链接阶段,翻译单元也可以进行预处理,编译和组装。
仅仅因为
#pragma comment(lib,"xxx.lib")
在源文件中并不意味着编译器会使用它。事实上,它作为注解进入,随后被链接器使用。与 *nix没有太大区别。mzaanser3#
使用这个GCC标志为未知的杂注生成一个错误。它会很快告诉你编译器是否理解它。
第一个月