我通过命令行用g ++编译了一个DirectX程序,它运行得很好。当我包含d3dx9.h时,我得到了太熟悉的“没有这样的文件或目录”的消息。事实证明,链接器“找不到-ld3dx9”。我检查了,必要的文件在他们正确的目录中。 include和lib文件已正确标记。编译器正好使用-ld3d9标志,但显然-ld3dx9不会飞。我在CodeBlocks中尝试过,同样的事情发生了。对于YouTube上的某个人来说,它工作得很好。我必须遗漏一些非常明显的东西。
编辑:这是我给编译器的内容。我在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 :(得分:1)
你真的有一个名为ProgramFiles(x86)
的目录吗?您应该在命令中引用或转义空格。例如,像这样的东西可能会起作用:
g++ ... "-IC:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include"