Я скомпилировал программу DirectX с g ++ через командную строку, и она работала нормально. Когда я включил d3dx9.h, я получил слишком знакомое сообщение «нет такого файла или каталога». Как оказалось, линкер «не может найти -ld3dx9». Я проверил, и необходимые файлы находятся в их соответствующих каталогах. Файлы include и lib правильно помечены. Компилятор принимает флаг -ld3d9 как раз отлично, но, судя по всему, -ld3dx9 не летает. Я попробовал это в CodeBlocks, и произошло то же самое. Это сработало отлично, и денди для кого-то на YouTube. Я должен упустить что-то чрезвычайно очевидное.Как связать d3dx9?
Редактировать: Вот что я даю компилятору. Я на 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>
Не линкер. Его компилятор жалуется на файл заголовка. Пожалуйста, добавьте свои каталоги include правильно. –
@Digital_Reality Неясно, не найден ли файл d3dx9.h компилятором, или если d3dx9 lib не может быть найден компоновщиком. Или оба. Дополнительная информация о структуре каталогов, расположениях файлов, 'include' и флагов компилятора будет полезна. – LumpN
какой toolchain вы использовали? mingw или mingw-w64? например, в mingw-w64, существует большая ревизия d3dx9, например libd3dx9_24.a libd3dx9_35.a, указанная, и она может работать –