我有一个名为libunp.a
的静态库文件,我知道我可以使用gcc -lunp xx
来链接这个库。
在Windows下,我可以使用#pragma comment(lib,"xxx.lib")
告诉Microsoft C/C++编译器包含该库; 在Linux/GCC下我应该怎么做呢?
我有一个名为libunp.a
的静态库文件,我知道我可以使用gcc -lunp xx
来链接这个库。
在Windows下,我可以使用#pragma comment(lib,"xxx.lib")
告诉Microsoft C/C++编译器包含该库; 在Linux/GCC下我应该怎么做呢?
在GCC手册中关于编译指示的页面中似乎没有提到任何等效的编译指示。
我看到GCC不支持在源代码中进行链接的一个原因是,有时候正确的链接取决于链接顺序;这将要求您确保链接顺序无论编译顺序如何都能正确进行。如果您要做这么多工作,您可能还不如直接在命令行(或其他方式)上传递链接器参数。
在链接步骤中应指定库。这样的信息根本不属于翻译单元。即使没有链接阶段,翻译单元也可以进行预处理、编译和汇编。
仅因为源文件中有#pragma comment(lib,"xxx.lib")
并不意味着编译器会使用它。实际上,它被视为注释,并随后由链接器使用。与*nix没有太大区别。
使用这个GCC标志为未知的编译指示生成一个错误。它会快速告诉你编译器是否理解它。
-Werror=unknown-pragmas
warning: ignoring #pragma comment [-Wunknown-pragmas]\n\\ #pragma comment(lib,"xxx.lib")
)。 - alfC