デバッグ モードでは問題なくコンパイルされる Visual Studio 2010 (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();
それが私にとって奇妙なことです。このコードに問題はないはずです。