1

デバッグ モードでは問題なくコンパイルされる 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();

それが私にとって奇妙なことです。このコードに問題はないはずです。

4

1 に答える 1

1

わかった。リリース モードでコンパイルするように構成された FlyCapture2 ライブラリに付属のサンプル プロジェクトを見つけることができました。デバッグ モードとは異なるいくつかのスイッチが含まれていました。したがって、パスは正しかったのですが、有効にするコンパイラ スイッチとライブラリの無視がいくつかありました。これが FlyCapture2 を使用している場合は、サンプル プロジェクトを参照してリリース モードに切り替え、自分のプロジェクトのリリース モードと他のプロジェクトのリリース モードを比較してください。君たちありがとう!

于 2013-11-01T16:18:37.517 に答える