2012-02-22 2 views
1

간단한 SDL OpenGL 앱을 작성하고 싶습니다. Codeblocks는 내가 사용하는 IDE입니다. 새 OpenGL 프로젝트를 만들면 컴파일이 잘되지만 SDL 헤더에서 함수를 사용하려고하면 "정의되지 않은 참조 오류"가 발생합니다.우분투에서 SDL과 OpenGL로 연결

    : 같은 내가 새로운 SDL 프로젝트를 생성하는 경우, 내가 문제없이 SDL 기능을 사용할 수 있습니다하지만 난 ...는 OpenGL 기능

    참고를에 "정의되지 않은 참조 오류"를 얻을, 다른 방향으로 간다

  • 나는 내가 SDL을 설치 한
  • 우분투 11.10 사용하고 OpenGL은 당신이 올바른 라이브러리를 추가 할 필요가
+0

코드 블럭을 모르겠습니다. 즉, 링커 및/또는 컴파일러 플래그를 추가 할 장소가 있으면 한 프로젝트에서 다른 프로젝트로 모든'-l, -L 및 -I 플래그를 복사하십시오. OpenGL 프로젝트 설정에서 "-lglut -lGL -lGLU"와 같은 것을 찾을 수 있습니다. '-l' 플래그는 연결할 라이브러리를 나타냅니다. '-L'은 해당 라이브러리의 검색 경로에 디렉토리를 추가합니다. '-I'는 컴파일러가 포함 된 헤더를 검색하는 곳에 디렉토리를 추가하지만 문제가 아닌 것처럼 들린다. –

답변

2

패키지. 헤더는 컴파일러에 일종의 인덱스를 제공합니다. 그러나 실제로 어떤 라이브러리를 가져올 지 링커에게 알려야합니다. 링커 옵션은 빌드 설정에서 찾아야합니다. 당신은 '

  • libGL.so (-lGL 링커 스위치)
  • 이 (-lSDL 링커 스위치)

당신은 또한 경우 libGLU.so 필요할 수 있습니다 libSDL.so SDL + OpenGL을위한 다음과 같은 라이브러리를 필요 glu 기능을 사용합니다.

+0

정말 감사합니다. 더 이상 링커 오류가 없습니다. –

2

pkg-config를 지정하면 SDL 및 Mesa의 GL + GLU에 대한 컴파일 및 연결에 필요한 특정 플래그 및 옵션을 얻는 데 적합합니다. (일부 GL 구현은 .pc 파일을 제공하지 않을 수 있지만 사용 가능한 경우 계속 사용해야합니다.)

관련 문제