D言語はじめました。
D言語はexe吐き出すものの、中間ファイルはVisual C++とまったく共存できないので
(同じ.objと.lib生成するのに中身全然違った)、CやC++の資産を使いまわそうとすると、
DLLを使うしかありません。(3/17追記:coffimplibがあった)このあたりでかなりハマったのでメモ。
DLLをD言語用にポーティングするツールにimplibというのがあります。
これはDLLを入力として与えると、D言語用.libを生成してくれるツールで、
glewやglfw使おうと思うと多分必須になるんじゃないかと思います。
glfwのほうはD言語用ポーティングが公式サポートされてるので問題ないですが、
問題なのはglewの方。
implibでDLLポーティングしても、Dプロジェクトをビルドしようとすると”glewInitが無い”と
コンパイル時に怒られる。
散々原因を探しまわった結果、大体のサイトでは、
implib /system hoge.lib hoge.dll
って書いてあるんでその通りにやってたんですが、これを
implib hoge.lib hoge.dll
ってやったら動きました。どうやらオプション余計だったようだ・・・
SDLやSDL_mixerではオプション指定しても問題なかったので、何でglewだけが
こんなトラップになってるのか謎ですが。
とりあえず動かすためのメモ。
自分用メモ
コメントはまだありません。