未定义的引用SDL与Code:: block
undefined references SDL with Code::Blocks
我是按照http://lazyfoo.net/tutorials/SDL/01_hello_SDL/windows/codeblocks/index.php教程如何使用SDL与Code::块,因为我一直有这个问题在几乎每一个该死的IDE我已经尝试过。
该教程非常直接,在第7步中指出"我们必须告诉编译器链接到库。在链接器设置下,粘贴"-lmingw32 -lSDL2main -lSDL2"。我就是这么做的。然后它说,如果你得到一堆未定义的引用错误,你搞砸了这一步,我真的不知道我怎么可能搞砸这一步,因为这是一个简单的步骤。
我真的很想开始使用这个,同时使用MinGW和Code::Blocks。可能有助于解决此问题的信息:
- 我有MinGW目录位于我的C:
- 我在我的C:目录中有一个文件夹SDL,在该文件夹中,我通过右键单击项目属性并添加目录,将包括和lib文件从SDL链接到Code::BLocks。这一切似乎都很好。Include目录= C:SDLSDL2-2.0.3x86_64-w64-mingw32 Include SDL2 Lib目录= C:SDLSDL2-2.0.3x86_64-w64-mingw32 Lib 如前所述,在链接器设置->其他链接器选项中:我写了-lmingw32 - lsdl2main - lsdl2,但是我得到了一堆引用错误。我不知道该怎么做,我已经在网上搜索了几个小时,我甚至替换了SDL_platform.h,因为它会导致问题,未定义的引用仍然存在。
请帮助。这是我用来检查SDL是否工作的代码,它不是。
#include "SDL.h"
#include <iostream>
#include <cstdio>
#include <Windows.h>
int main( int argc, char* argv[])
{
// Fire up SDL, this starts all subsystems; audio video etc.
if ( SDL_Init(SDL_INIT_EVERYTHING) < 0 ) {
fprintf(stderr, "Unable to init SDL: %sn", SDL_GetError());
exit(1);
}
// Now Shut it down
atexit(SDL_Quit);
return 0;
}
这些是我得到的错误:
-------------- 构建:标题(编译器:GNU GCC编译器的调试 )---------------
mingw32-g++.exe -Wall -g -IC:SDLSDL2-2.0.3x86_64-w64-mingw32includeSDL2 -c C:UsersBryanDesktopCodeBlocksTITLEmain.cpp -o objDebugmain.o
mingw32-g++.exe -LC:SDLSDL2-2.0.3x86_64-w64-mingw32lib -o binDebugTITLE.exe objDebugmain.o -lmingw32 -lSDL2main -lSDL2
objDebugmain.o: In function `SDL_main':
C:/Users/Bryan/Desktop/CodeBlocks/TITLE/main.cpp:10: undefined reference to `SDL_Init'
C:/Users/Bryan/Desktop/CodeBlocks/TITLE/main.cpp:11: undefined reference to `SDL_GetError'
C:/Users/Bryan/Desktop/CodeBlocks/TITLE/main.cpp:15: undefined reference to `SDL_Quit'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/libmingw32.a(main.o): In function `main':
e:pgiawsrcpkgmingwrt-4.0.3-1-mingw32-srcbld/../mingwrt-4.0.3-1-mingw32-src/src/libcrt/crt/main.c:91: undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
4 error(s), 0 warning(s) (0 minute(s), 0 second(s))
您已经创建了一个Windows可执行项目。向导将入口点设置为WinMain
。您的代码实现了一个以main(int argc, char**argv)
为入口点的命令行程序。
如果你想继续使用main
,你应该创建一个新的命令行项目并添加你此项目的源文件。或者,您可以尝试更改项目类型。
对于SDL错误,您应该检查是否使用匹配的编译器和库(32位vs. 64位)
相关文章:
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- Visual Studio Code - C++ Debugger 無法啟動
- Visual Studio Code "undefined reference to `WinMain@16'"
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 修改 VS Code 中的默认C++代码段
- 如何配置Visual Studio Code以使用cygwin,cmake和gcc进行调试
- std::to_string - 'to_string' 不是 'std' 的成员 - Visual Studio Code 1.42.0
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- C++新手,想知道如何使用VS code 2019播放音频文件
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- 如何在Visual Studio Code中重命名我的a.exe文件?
- C++ Visual Studio Code 的设置不起作用
- 以某种方式告诉编译器"Do not process line of code"
- 如何运行由 Code::Block 创建的控制台应用程序
- 对使用 Code::Block 的类方法的未定义引用
- 如何利用MinGW+Code::Block编译GUI程序的控制台
- OTL 4.0 in code::Block
- Eclipse / Code::Block 不运行应用程序
- 未定义的引用SDL与Code:: block