2013-06-21 61 views
5

当我在C++中使用非标准库时,我必须在链接器 - >输入 - >附加依赖项中添加库名称。但替代方案是写Pragma评论C++

#pragma comment(lib , "library name") 

这两种方法是完全一样的吗?

+9

第二个实际上只能在MSVC上工作。您仍然有这样的好处,那就是只要不支持它就会被忽略,但请注意,GCC至少会提醒您,只要您打开该文件即可。 – chris

+0

我认为这个假设是“在windows msvc上”,或者至少应该是 – 4pie0

+0

这个问题应该重新标记以表明它是特定于MSVC的。虽然我不完全确定要使用哪个标签。 –

回答

5

他们不是。

该编译指示增加了一个defaultlib。该选项是链接器行的强制lib。

后者无论如何都会被处理,并且如果缺失则会出错。 如果找不到,默认的lib将被默认忽略。如果使用“忽略默认库”或“忽略特定默认库”选项,即使它存在,也可以忽略它的使用。

+0

这很有趣。这可能会派上用场我想。 – chris

0

这些是做同样事情的两种方式。即编译器告诉链接器要查找哪些库。 #pragma注释还有其他功能,例如将诸如编译器信息或任何其他元数据的数据添加到对象文件。

#pragma comment是VC++特有的。