環境設定
2つから1つを選択してください
1. 32ビットのPythonと32ビットのmingwを準備します。
2. 64ビットのPythonと64ビットのmingw64を準備します。
- 32 ビット mingw ダウンロード アドレス: https://disk.baidu.com/s/1Z25NxrRuOsjOKWXddTNyeg 抽出コード: dvgl
- 64 ビット mingw64 ダウンロード アドレス: https://www.onlinedown.net/soft/10045442.htm
- 可能な方は、mingw の公式 Web サイトから直接ダウンロードすることもできます: https://www.mingw-w64.org/
g++.exe へのパスを環境変数として設定します。
- mingw64を例に挙げます(32ビットも同様です)
- 上記でダウンロードしたmingw64を解凍し、中のファイルを任意のパスに解凍します。
Python環境の構築(省略)
g++ と Python のセットアップが完了したら、hello word! を開始できます。
C++ コードを exe プログラムにコンパイルします。
- 新しい c_call_py.cpp を作成する
#include <stdlib.h>
#include <Python.h>
int main(int argc, char *argv[]){
Py_Initialize();
PyRun_SimpleString("print('hello world')\n");
Py_Finalize();
system("pause"); // 暂停
return 0;
}
- cmd を開きます (管理者権限で実行することが望ましい)
- cmd に g++ c_call_py.cpp と入力します -I "自分のコンピューターの Python パス\include" -L "自分のコンピューターの Python パス/libs" -l 私のコンピューターの Python .lib -o test
- たとえば、私のコンピューターのpython3.8は次のように入力します
- g++ c_call_py.cpp -I “C:\Program Files\Python38\include” -L"C:/Program Files/Python38/libs" -lpython38 -o test
-
コンパイルおよび生成された test.exe
-
途中で遭遇する可能性のある落とし穴
- Baidu 検索で表示されるもののほとんどは、次のコマンド ラインです: g++ main.cpp -I/usr/include/python3.5 -lpython3.5m -o test
- 長い間ここで行き詰まっていました。win 環境への呼び出しは、このコマンドにはまったく適していません。
- 未解決の外部シンボル __imp_Py_Initialize…
- その理由は、mingw と Python が同じ 64 または 32 ではないためです。最初に 64 ビットの Python を 32 ビットの mingw で呼び出したため、このエラーが発生しました。
- Baidu 検索で表示されるもののほとんどは、次のコマンド ラインです: g++ main.cpp -I/usr/include/python3.5 -lpython3.5m -o test