コードをコンパイルしようとすると
#include "armadillo"
int main(int argc, char *argv[]) {
}
MinGW g++ と最新の armadillo (3.6.1) を使用すると、私の Windows XP では正常に動作しますが、コンパイルして Windows 7 で実行すると、「問題が発生したため、プログラムが正しく動作しなくなりました」というメッセージが表示されます。
何が原因でしょうか?
私は 4.6.2 と 4.7.2 の両方で試しました (次に含まれる最新の g++ -v):
組み込みの仕様を使用します。COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.7.2/lto-wrapper.exe ターゲット: mingw32 構成: ../gcc-4.7.2/configure --enable- languages=c,c++,ada,fortran,obj c,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgo mp --disable-win32-registry --enable- libstdcxx-debug --disable-build-poststage1- with-cxx --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw スレッド モデル: win32 gcc バージョン 4.7.2 (GCC)
この段階では、LAPACK などのライブラリをリンクしていないことに注意してください。私もコメントを外してみました
//#ARMA_USE_LAPACK を定義
config.cpp にありますが、効果はありません。ちなみに、どちらのシステムでも問題なく armadillo なしで c コードをコンパイルできます。問題を引き起こすのは、アルマジロ インクルードの追加のみです。
更新: ctrl-c を押すと、次のようになります。
forrtl: エラー (200): コントロール C イベントによるプログラムの中止 イメージ
PC ルーチン ライン ソース lapack_win32_MT.d 103A49EA 不明 不明 不明 lapack_win32_MT.d 1034CD0E 不明 不明 不明 lapack_win32_MT.d 1035B254 不明 不明 不明 kernel32.dll
755B6C19 不明 不明 不明 kernel32. dll
75513677 不明 不明 不明 ntdll.dll
77DFC002 不明 不明 不明 ntdll.dll
77DFBFD5 不明 不明 不明
更新: さらに別の Windows 7 システムでは、なんとか実行できますが、コンパイル時に次のメッセージが表示されます (armadillo パッケージの example2.cpp をコンパイルするとき):
Info: resolving vtable for std::exception by linking to __imp___ZTVSt9exception (auto-import)
Info: resolving vtable for std::bad_alloc by linking to __imp___ZTVSt9bad_alloc (auto-import)
Info: resolving std::cout by linking to __imp___ZSt4cout (auto-import)
Info: resolving std::nothrow by linking to __imp___ZSt7nothrow (auto-import)
Info: resolving vtable for __cxxabiv1::__si_class_type_info by linking to __imp___ZTVN10__cxxabiv120__si_class_type_infoE (auto-import)
Info: resolving vtable for __cxxabiv1::__class_type_info by linking to __imp___ZTVN10__cxxabiv117__class_type_infoE (auto-import)
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
ありがとう。