"legacy openGL"x "SDL 1.x"에서 OpenGL3 + x SDL2로 그래픽 프로그래밍을 업그레이드하려고 시도하면서 링크 문제가 발생했습니다. 많은 연결 매개 변수를 시도했지만 아무 것도 작동하지 않는 것 같습니다. Windows에서 MinGW Netbeans 7.0 및 SDL 2의 프로젝트에 연결
나는 SDL1 연결 PARAMS을 시도 : 나는처럼에 SDL2 코드를 추가 할 때 1#include <SDL2/SDL.h>
int main(int argc, char **argv)
{
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
SDL_Quit();
return -1;
}
SDL_Quit();
return 0;
}
목록 코드를하지만 : 연결 1
-lmingw32 -lSDLmain -lSDL
그것은이 코드를 잘 작동 목록 이 : 코드 목록 2
#include <SDL2/SDL.h>
int main(int argc, char **argv)
{
SDL_Window* window(0);
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
SDL_Quit();
return -1;
}
window = SDL_CreateWindow("Test SDL 2.0", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
나는 연결 오류를 얻을 : 오류가 1
g++ -o dist/Debug/MinGW-Windows/sdl2 build/Debug/MinGW-Windows/main.o -lmingw32 -lSDLmain -lSDL
build/Debug/MinGW-Windows/main.o: In function `SDL_main':
C:\Users\Paikuhan\Documents\NetBeansProjects\SDL2/main.cpp:21: undefined reference to `SDL_CreateWindow'
C:\Users\Paikuhan\Documents\NetBeansProjects\SDL2/main.cpp:23: undefined reference to `SDL_DestroyWindow'
collect2.exe: error: ld returned 1 exit status
이에 연결 PARAMS을 swaping 목록 : 2
-lmingw32 -lSDL -lSDLmain
목록 연결 더 많은 오류를 제공 (내가 그들을 쓰지 않습니다 하위). 는 '2'과 같이 PARAMS에 추가 : 3
-lmingw32 -lSDL2main -lSDL2
목록 연결하는 것은 나에게 2 초 않고보다 더 많은 연결 오류를 제공합니다 : 목록 오류 2
g++ -o dist/Debug/MinGW-Windows/sdl2 build/Debug/MinGW-Windows/main.o -lmingw32 -lSDL2main -lSDL2
build/Debug/MinGW-Windows/main.o: In function `SDL_main':
C:\Users\Paikuhan\Documents\NetBeansProjects\SDL2/main.cpp:14: undefined reference to `SDL_Init'
C:\Users\Paikuhan\Documents\NetBeansProjects\SDL2/main.cpp:16: undefined reference to `SDL_Quit'
C:\Users\Paikuhan\Documents\NetBeansProjects\SDL2/main.cpp:21: undefined reference to `SDL_CreateWindow'
C:\Users\Paikuhan\Documents\NetBeansProjects\SDL2/main.cpp:23: undefined reference to `SDL_DestroyWindow'
C:\Users\Paikuhan\Documents\NetBeansProjects\SDL2/main.cpp:24: undefined reference to `SDL_Quit'
c:/programs/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/libmingw32.a(main.o): In function `main':
e:\p\giaw\src\pkg\mingwrt-4.0.3-1-mingw32-src\bld/../mingwrt-4.0.3-1-mingw32-src/src/libcrt/crt/main.c:91: undefined reference to `[email protected]'
collect2.exe: error: ld returned 1 exit status
없는 하나의 SDL 마치 함수가 발견되었고 lib 디렉토리에 라이브러리 (libSDL2.a, libSDL2.dll.a, libSDL2.la, libSDL2main.a, pkgconfig \ sdl2.pc)가 있습니다. 연결이
$(pkg-config --cflags --libs sdl2)
사를 나열하고 그 어떤 좋은하지 않습니다 나는 또한 넷빈즈에 this set of params를 사용했습니다. 아무도 이것에 나를 도울 수 있습니까. 고맙습니다!
. SDL2 헤더 파일은 어디에 두었습니까? 이 폴더를 컴파일러 검색 폴더에 추가 했습니까? – jordsti
오, MinGW32 컴파일러의 버전은 무엇입니까? – jordsti
안녕하세요, -lmingw32 -lSDL2main -lSDL2 및 -lmingw32 -lSDL2 -lmingw32 -lSDL2main 두 가지 모두 동일한 오류를 표시합니다 (오류 목록 2).컴파일러를 사용하고 모든 적절한 헤더와 라이브러리를 찾을 수 있도록 netbeans를 설정하려면이 자습서 https://netbeans.org/community/releases/73/cpp-setup-instructions.html#compilers를 참조하십시오. 즉 MinGW 및 MSYS 도구 용 바이너리 경로를 내 PATH에 추가합니다. 나는 컴파일러가 필요한 파일을 찾은 넷빈 덕분에 알고있다. 왜냐하면 "-lSDL2main"을 찾을 수 없다는 링크 오류가 나타나기 때문에 !! g ++ -v는이 "gcc 버전 4.8.1 (GCC)"을 제공합니다. –