編集者のメモ:「プロシージャエラーポイント_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_
がダイナミックリンクライブラリlibstdc++-6.dll
に見つかりませんでした」に類似したエラーメッセージには同じ原因があり、同じ解決策が適用されます。
WindowsでIrrlicht C++コンソールアプリケーションを実行したい場合、このエラーが発生し続けます。
the procedure entry point __gxx_personality_v0 could not be located in the dynamic link library libstdc++-6.dll
CodeGWs v12.11とMinGWおよびIrrlicht v1.8エンジンを使用しています。正しく設定しました。私のコンピューターには、MinGWと共にインストールされたQtもあります。競合がある可能性はありますか?
これはソースコードです:
#include <irrlicht.h>
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
int main() {
IrrlichtDevice *device = createDevice( video::EDT_OPENGL);
if (!device)
return 1;
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
guienv->addStaticText(L"Hello World", core::recti(10, 10, 100, 30));
device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");
while(device->run()) {
driver->beginScene(true, true, SColor(250, 190, 1, 2));
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
device->drop();
return 0;
}
コンパイラをC:\CodeBlocks\MinGW
に設定しました。すべてのファイル([設定]に表示されるものがあります)は、make.exe
を除くbin
の下にあります。それは正常ですか?
[自動検出]ボタンも上のパスを提案します。
私もこの問題を抱えていました。これは私のためにそれを修正しました:
それはうまくいくはずです...
これが発生する理由は、libstdc++-6.dll
もWINDOWS\System32
ディレクトリ(またはPATHで見つけることができる他の場所)。特に、異なるバージョンのMingWを使用する場合。したがって、解決策は、PATH
変数を変更して、MingW\bin
ディレクトリはWindowsシステムディレクトリの前にあります。既存のバージョンを新しいバージョンに置き換えるか、dllを実行可能なフォルダーにコピーします。
私のケースでこれを分析したとき、システムパス構成にlibstdc ++-6.dllのバージョンがさらに2つあることに気付きました。 1つはmingw64にあり、もう1つはpostgresにあります。
問題は、それらが同じではなく、サイズも異なることです。
私の解決策は簡単です:
postgresのバージョンをmingw64バージョンより下に移動します。そして、それは完全に機能します。
mingw\binにあるlibstdc ++-6.dllをwindows\system32にコピーしてください