3

前提: C++ アプリケーションが何にも依存しないようにしたいMicrosoft Visual C++ redistributableので、すぐに使用できる実行可能ファイルを出荷できます。

私が最初に行ったこと:必要性を避けるために、ランタイム ライブラリをMultithread (/MT)fromに切り替えます(VS 2013 は 120 バージョンを必要とするべきではありません。これはコンパイラ バージョンなので?)。それを行うには、同じランタイム ライブラリで使用している別のライブラリも再コンパイルする必要があり、それは機能しました。どこでも問題なく実行できる.exeがありました(または、知りませんでした)。DLL Multithread (/MD)msvcr110.dll

次に、LuaJIT を利用するいくつかの機能を追加しました。パッケージに付属の で LuaJIT をビルドしましたmsvcbuild.batが、魅力的に機能しましたが、今では実行可能ファイルmsvcr110.dllを実行する必要があります。LuaJIT が /MD フラグを付けてコンパイルされているためだと思いますが、私がやりたいことを行う適切な方法があるかどうか知りたいです。

4

2 に答える 2

4

私はこれをテストしませんでしたが、おそらくコンパイルの各部分で /MT フラグを使用する必要があります。この場合、メイン プログラムと LuaJIT の両方です。その msvcbuild.bat ファイル ( https://github.com/luvit/luajit-2.0/blob/master/src/msvcbuild.bat ) で、明示的に /MD を指定していることがわかります (17 行目)。それがあなたの問題だと思います。/MT に変更して確認してください。

于 2013-08-11T21:26:18.060 に答える