Date: 2005-01-25
Tags: python, programming

Pythonを利用するDLLのデバッグ

デバッグ版Python32_d.libは標準のパッケージ [1] には同梱されていない。そしてpython.hをincludeすると内部的に以下のようにかかれているので、Debugだとpython23_d.libを自動的にリンクしようとして失敗してしまう。:

#ifdef _DEBUG
    #pragma comment(lib,"python23_d.lib")
#else
    #pragma comment(lib,"python23.lib")
#endif /* _DEBUG */

なので、Pythonを使うC++アプリをVS.NETで作ってもReleaseでしかコンパイルできないのでデバッグが大変。というかDebug版無しに開発するのはIDEに慣れてしまった身としては苦痛。いや、苦痛とか言ってないでUnitTestすればいいんだけど。

どっかにコンパイル済みのpython23_d.libがあるだろ!と思って調べてみたら、 もっと簡単な方法 が:

So if you want you should be able to change your source to something
like this:

#undef _DEBUG
#include <python.h>
#define _DEBUG

あー、なるほどー。