Как мне связать d3dx9?

0

Я скомпилировал программу 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>
  • 0
    Не линкер. Его компилятор жалуется на заголовочный файл. Пожалуйста, добавьте ваши каталоги включения правильно.
  • 0
    @Digital_Reality Неясно, если компилятор не может найти файл d3dx9.h или компоновщик не может найти lib d3dx9. Или оба. Было бы полезно получить дополнительную информацию о структуре каталогов, расположении файлов, инструкциях include и флагах компилятора.
Показать ещё 1 комментарий
Теги:
directx-9

1 ответ

1
Лучший ответ

У вас действительно есть каталог с именем ProgramFiles(x86)? Вы должны указать или избежать пробелов в команде. Например, что-то вроде этого может работать:

g++ ... "-IC:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню