我在Visual Studio2010中有一个项目(C++项目),它在调试模式下编译没有问题,但在发布模式下却出现了大量奇怪的“语法”错误。错误如下:
c:\program files\point grey research\flycapture2\include\Error.h(38): error C2059: syntax error : 'string'
1>c:\program files\point grey research\flycapture2\include\Error.h(39): error C2146: syntax error : missing ';' before identifier 'Error'
1>c:\program files\point grey research\flycapture2\include\Error.h(39): error C2470: 'Error' : looks like a function definition, but there is no parameter list; skipping apparent body
1>c:\program files\point grey research\flycapture2\include\BusManager.h(56): error C2059: syntax error : 'string'
1>c:\program files\point grey research\flycapture2\include\BusManager.h(57): error C2146: syntax error : missing ';' before identifier 'BusManager'FlyCapture是我的代码使用的库。我仔细检查了包含的头目录和lib库的路径,它们都是正确的。我还更改了库文件名,使其不包含"d“(用于调试)。我还检查了代码中的预编译器_DEBUG语句。我一个也没找到。这非常令人沮丧。你知道我还应该检查什么吗?我正在x64模式下编译。
编辑:
第一个错误指向下面粘贴的库头文件中的"class FLYCAPTURE2_API Error“行(这个库甚至不是我自己写的,它在调试模式下工作):
namespace FlyCapture2
{
struct ErrorImpl;
/**
* The Error object represents an error that is returned from the library.
* Overloaded operators allow comparisons against other Error objects or
* the ErrorType enumeration.
*/
class FLYCAPTURE2_API Error
{
public:
/**
* Default constructor.
*/
Error();
/**
* Copy constructor.
*/
Error( const Error& error );
/**
* Default destructor.
*/
virtual ~Error();这就是我感到奇怪的地方。这段代码应该没有问题。
发布于 2013-11-02 00:18:38
这样啊,原来是这么回事。我能够找到一个示例项目,该项目随FlyCapture2库一起提供,该库被配置为在发布模式下编译。它包含几个与调试模式不同的开关。所以我的路径是正确的,但是有一些编译器开关和库忽略需要启用。如果这种情况发生在使用FlyCapture2的任何人身上,请查看示例项目并将其切换到发布模式,然后将您的项目的发布模式与他们的进行比较。谢谢你们!
https://stackoverflow.com/questions/19730430
复制相似问题