CodeBlocks i DirectX
Ostatnio zmodyfikowano 2014-10-09 12:49
SocrateZ Temat założony przez niniejszego użytkownika |
CodeBlocks i DirectX » 2014-10-07 21:30:28 Witam! Właśnie chciałem spróbować użyć DirectX w CodeBlocks. Problem jest jednak taki że zawsze używam Visual Studio i nie mam zielonego pojęcia o CodeBlocks. Domyślny kompilator to GCC. Próbuję dołączyć w Linker settings biblioteki lib (d3d9.lib i d3dx9.lib z DirectX SDK). W search directories - zakładka Compiler folder z Include, Linker - folder z Lib\x86. Tworze plik main.c. Wszystko niby ok. Importuje pliki z Visual Studio i... trach... ||=== Build: Debug in Application (compiler: GNU GCC Compiler) ===| C:\DirectXSDK\Include\d3d9types.h|25|warning: ignoring #pragma warning [-Wunknown-pragmas]| C:\DirectXSDK\Include\d3d9types.h|2411|warning: ignoring #pragma warning [-Wunknown-pragmas]| C:\DirectXSDK\Include\d3d9.h|2025|warning: "/*" within comment [-Wcomment]| C:\DirectXSDK\Include\d3d9.h|2026|warning: "/*" within comment [-Wcomment]| C:\DirectXSDK\Include\d3d9.h|2025|warning: "/*" within comment [-Wcomment]| C:\DirectXSDK\Include\d3d9.h|2026|warning: "/*" within comment [-Wcomment]| C:\DirectXSDK\Include\d3dx9math.h|19|warning: ignoring #pragma warning [-Wunknown-pragmas]| C:\DirectXSDK\Include\d3dx9math.h|1792|warning: ignoring #pragma warning [-Wunknown-pragmas]| C:\DirectXSDK\Include\d3dx9core.h|669|warning: multi-line comment [-Wcomment]| obj\Debug\moss\directx9.o||In function `D3DXVec2Length':| C:\DirectXSDK\Include\d3dx9math.inl|1578|multiple definition of `D3DXVec2Length'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1578|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2LengthSq':| C:\DirectXSDK\Include\d3dx9math.inl|1593|multiple definition of `D3DXVec2LengthSq'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1593|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2Dot':| C:\DirectXSDK\Include\d3dx9math.inl|1604|multiple definition of `D3DXVec2Dot'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1604|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2CCW':| C:\DirectXSDK\Include\d3dx9math.inl|1615|multiple definition of `D3DXVec2CCW'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1615|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2Add':| C:\DirectXSDK\Include\d3dx9math.inl|1626|multiple definition of `D3DXVec2Add'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1626|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2Subtract':| C:\DirectXSDK\Include\d3dx9math.inl|1639|multiple definition of `D3DXVec2Subtract'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1639|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2Minimize':| C:\DirectXSDK\Include\d3dx9math.inl|1652|multiple definition of `D3DXVec2Minimize'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1652|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2Maximize':| C:\DirectXSDK\Include\d3dx9math.inl|1665|multiple definition of `D3DXVec2Maximize'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1665|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2Scale':| C:\DirectXSDK\Include\d3dx9math.inl|1678|multiple definition of `D3DXVec2Scale'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1678|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec2Lerp':| C:\DirectXSDK\Include\d3dx9math.inl|1692|multiple definition of `D3DXVec2Lerp'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1692|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Length':| C:\DirectXSDK\Include\d3dx9math.inl|1710|multiple definition of `D3DXVec3Length'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1710|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3LengthSq':| C:\DirectXSDK\Include\d3dx9math.inl|1725|multiple definition of `D3DXVec3LengthSq'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1725|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Dot':| C:\DirectXSDK\Include\d3dx9math.inl|1736|multiple definition of `D3DXVec3Dot'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1736|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Cross':| C:\DirectXSDK\Include\d3dx9math.inl|1747|multiple definition of `D3DXVec3Cross'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1747|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Add':| C:\DirectXSDK\Include\d3dx9math.inl|1765|multiple definition of `D3DXVec3Add'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1765|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Subtract':| C:\DirectXSDK\Include\d3dx9math.inl|1779|multiple definition of `D3DXVec3Subtract'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1779|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Minimize':| C:\DirectXSDK\Include\d3dx9math.inl|1793|multiple definition of `D3DXVec3Minimize'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1793|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Maximize':| C:\DirectXSDK\Include\d3dx9math.inl|1807|multiple definition of `D3DXVec3Maximize'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1807|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Scale':| C:\DirectXSDK\Include\d3dx9math.inl|1821|multiple definition of `D3DXVec3Scale'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1821|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec3Lerp':| C:\DirectXSDK\Include\d3dx9math.inl|1836|multiple definition of `D3DXVec3Lerp'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1836|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec4Length':| C:\DirectXSDK\Include\d3dx9math.inl|1855|multiple definition of `D3DXVec4Length'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1855|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec4LengthSq':| C:\DirectXSDK\Include\d3dx9math.inl|1870|multiple definition of `D3DXVec4LengthSq'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1870|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec4Dot':| C:\DirectXSDK\Include\d3dx9math.inl|1881|multiple definition of `D3DXVec4Dot'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1881|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec4Add':| C:\DirectXSDK\Include\d3dx9math.inl|1892|multiple definition of `D3DXVec4Add'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1892|first defined here| obj\Debug\moss\directx9.o||In function `D3DXVec4Subtract':| C:\DirectXSDK\Include\d3dx9math.inl|1907|multiple definition of `D3DXVec4Subtract'| obj\Debug\main.o:C:\DirectXSDK\Include\d3dx9math.inl|1907|first defined here| ||More errors follow but not being shown.| ||Edit the max errors limit in compiler options...| ||=== Build failed: 50 error(s), 9 warning(s) (0 minute(s), 3 second(s)) ===|
Rozumiem ostrzeżenia z pragma i komentarzami... ale błędy z multiple definition? Może ktoś miał coś podobnego? |
|
Axero |
» 2014-10-07 21:36:06 Zobaczy czy nie dodałeś bibliotek dwukrotnie,bo mogłeś dodać biblioteki dla wersji 32 i 64 bit jednocześnie. |
|
SocrateZ Temat założony przez niniejszego użytkownika |
» 2014-10-07 21:41:30 Biblioteki dodane są pojedynczo. Gdy wywale cały kod napisany w DirectX program działa... To jest dziwne. --- EDIT --- Wydaje się że problemem była sama nazwa pliku (directx9.h, directx9.c). Zmieniłem nazwę na directx9cc.h i directx9cc.c Jednak po tej operacji mam kolejne błędy: ||=== Build: Debug in Application (compiler: GNU GCC Compiler) ===| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.h|21|error: unknown type name 'IDirect3D9'| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.h|22|error: unknown type name 'IDirect3DDevice9'| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c||In function '_msf_create_engine':| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|8|error: unknown type name 'D3DPRESENT_PARAMETERS'| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|9|error: unknown type name 'D3DADAPTER_IDENTIFIER9'| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|11|error: unknown type name 'IDirect3D9'| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|12|error: unknown type name 'IDirect3DDevice9'| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|33|warning: implicit declaration of function 'Direct3DCreate9' [-Wimplicit-function-declaration]| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|33|error: 'D3D_SDK_VERSION' undeclared (first use in this function)| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|33|note: each undeclared identifier is reported only once for each function it appears in| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|42|error: request for member 'lpVtbl' in something not a structure or union| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|43|error: request for member 'lpVtbl' in something not a structure or union| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|46|error: request for member 'Description' in something not a structure or union| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|15|warning: unused variable 'adapter_count' [-Wunused-variable]| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|14|warning: unused variable 'adapter' [-Wunused-variable]| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|13|warning: unused variable 'retval' [-Wunused-variable]| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c||In function '_msf_destroy_engine':| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|119|error: request for member 'lpVtbl' in something not a structure or union| C:\Users\Kamil\Documents\CodeBlocks\Application\dir\directx9cc.c|122|error: request for member 'lpVtbl' in something not a structure or union| ||=== Build failed: 12 error(s), 4 warning(s) (0 minute(s), 1 second(s)) ===|
|
|
maly |
» 2014-10-08 09:00:17 Spróbuj zmienić rozszerzenie twojego pliku .c na .cpp. |
|
SocrateZ Temat założony przez niniejszego użytkownika |
» 2014-10-08 12:44:46 Hmm... dziwne... pomogło... Problem w tym że program nie włącza się i zwraca kod 0xC0000005.
Tylko pytanie - dlaczego nie mogę kompilować gcc tylko g++? Kod napisany jest w c99 (dla c89 nie działa WinAPI).
--- EDIT --- Ok, z błędem 0xC0000005 sobie poradziłem (błędne użycie va_arg), ale pozostaje nadal pytanie odnośnie kompilacji w gcc. |
|
maly |
» 2014-10-08 15:57:56 Tylko pytanie - dlaczego nie mogę kompilować gcc tylko g++? |
Bo DirectX jest w C++. |
|
SocrateZ Temat założony przez niniejszego użytkownika |
» 2014-10-08 16:28:27 Udowodnij! Pokaż źródło w którym to wyczytałeś! Programowanie w DirectX w C jest możliwe! Przecież właśnie to robię w Visual Studio. |
|
DejaVu |
» 2014-10-08 16:40:53 Jak już używasz DirectX-a to używaj też Visual C++. I tak jesteś zależny od platformy Windows i nie ma lepszego IDE do programowania w C++ niż Visual C++.
/edit: Poza tym w Internecie na pewno znajdziesz rozwiązane problemy związane z DirectX-em dla kompilatora GCC. |
|
« 1 » 2 3 |