Я скомпилировал программу DirectX с помощью g++ через командную строку, и она отлично работала. Когда я включил d3dx9.h, я получил слишком знакомое сообщение "нет такого файла или каталога". Как оказалось, линкер "не может найти -ld3dx9". Я проверил, и необходимые файлы находятся в их соответствующих каталогах. Файлы include и lib правильно помечены. Компилятор отлично передает флаг -ld3d9, но, видимо, -ld3dx9 не летает. Я попробовал это в CodeBlocks, и произошло то же самое. Это сработало отлично, и денди для кого-то на YouTube. Я должен упустить что-то чрезвычайно очевидное.
edit: Вот что я даю компилятору. Я на 64-битной Windows 7.
g++ Wrap.cpp winmain.cpp -o test
-IC:\ProgramFiles(x86)\MicrosoftDirectXSDK(June2010)\Include
-LC:\ProgramFiles(x86)\MicrosoftDirectXSDK(June2010)\Lib\x64
-ld3d9 -ld3dx9 -mwindows
и здесь включает в файл
#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
У вас действительно есть каталог с именем ProgramFiles(x86)
? Вы должны указать или избежать пробелов в команде. Например, что-то вроде этого может работать:
g++ ... "-IC:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include"
include
и флагах компилятора.