我习惯删除代码中报告的所有警告。如果可能的话,我只是喜欢干净的身材。我用了
#pragma comment(lib,"some.lib");
我收到了这个警告:
警告c4081:预期'换行';找到';'
我不确定为什么会产生警告。我可以获得删除它的帮助吗?
答案 0 :(得分:11)
它在行尾的分号。 #pragma
不需要它。
编辑:警告说明了一切:在编译指示结束时预期换行,但发现了一个分号。
使用VS2008进行测试
答案 1 :(得分:3)
您可以选择性地暂时禁用所有警告:
#pragma warning(push, 0)
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/exception.hpp>
#include <boost/filesystem/convenience.hpp>
#include <boost/program_options.hpp>
#include <boost/foreach.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/exception.hpp>
#include <boost/bind.hpp>
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/zlib.hpp>
#include <boost/iostreams/filtering_stream.hpp>
#include <boost/iostreams/device/back_inserter.hpp>
#pragma warning(pop)
您可以选择传递以下内容,而不是0:
#pragma warning( push )
#pragma warning( disable : 4081)
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop )
答案 2 :(得分:1)
#pragma warning(disable: 4081)
将禁用警告。但除非评论的语法错误,否则我无法重复警告。
#pragma comment(lib "some.lib")
给我警告4081但是
#pragma comment(lib, "some.lib")
没有。
您的警告信息的内容是什么?
编辑:我现在看到,忘记添加#pragma警告,只需删除;从评论行的末尾。这是一个语法错误。
答案 3 :(得分:0)
您没有提到编译器类型和版本,但我认为您需要在第二个参数(see here)
中添加名称而不包含“.lib”