Visual C ++ 2005でリリースビルドを使用しようとしたのはこれが初めてであり、確かにいくつかの違いがあるようです。
私の現在のエラーは次のとおりです。
Unhandled exception at 0x6ef7d628 (msvcr80d.dll) in <program_name>:
0xC0000005: Access violation reading location 0x6c2e6769.
呼び出しスタックを調べたところ、作成した静的ライブラリの関数に渡された文字列が「Bad Ptr」を与えていることがわかりましたが、その理由はわかりません。デバッグビルドでは問題なく動作します...
問題の行は次のとおりです。
int main()
{
static Script luaScript("config.lua");
Scriptは、luaスクリプトファイルを処理するために作成したクラスです。すべてのコードがアクセスできるようにシングルトンにしたいので、静的です。
スクリプトコンストラクター:
Script::Script(const string &filename)
{
luaState = lua_open();
scriptFilename = filename; // unhandled exception occurs here; Intellisense
// identifies filename as a <Bad Ptr>
// works perfectly fine in debug
}
ライブラリもデバッグモードになっているせいかもしれませんが、Releaseを使おうとするとコンパイルできないようです。
fatal error C1010: unexpected end of file while looking for precompiled header.
Did you forget to add '#include "stdafx.h"' to your source?
私はそのファイルにある程度精通していますが、静的ライブラリのリリースビルドになぜそれが必要なのですか?デバッグでそれを要求しませんでした。
OK、stdafx.hファイルを取得してください...新しいエラーが到着しました!:
fatal error C1083: Cannot open precompiled header file:
'Release\Script.pch': No such file or directory
ええと、「Visual C ++ 2005がリリースビルドのために私に何をしてほしいのか!?」以外のこれらすべての中心的な質問を見つけるのはちょっと難しいです。
誰かが助けてくれることを願っています。ありがとうございました。