나는 (우분투) 리눅스에서 C++ 응용 프로그램 및 2 명 운영 체제로 컴파일 : 기본적으로 리눅스에 사용하여 "g을 ++"(GNU C++ 컴파일러) 및 Windows로 크로스 컴파일 "i386-mingw32-g ++"(MinGW C++ 크로스 컴파일러)를 사용합니다.는 OpenGL + 메사 3D +는 MinGW
이제 "OpenGL"응용 프로그램 (Linux에서 Windows로)을 크로스 컴파일하려고합니다. 일부 OpenGL 라이브러리 파일이 필요합니다.
OpenGL의 구현으로 "Mesa 3D"오픈 소스 라이브러리를 사용합니다. 다행스럽게도 우분투는 Linux 용으로 "사전 컴파일 된"mesa3d 라이브러리 (libgl1-mesa-dev 및 libglu1-mesa-dev)를 제공하지만 불행히도 MinGW 크로스 컴파일러와 함께 사용하기위한 사전 컴파일 라이브러리가 없습니다. 그들) - 그래서 나는 "소스에서"수동으로 컴파일해야합니다 (http://www.mesa3d.org 홈페이지에서 다운로드 가능).
하지만 그렇게 할 생각은 없습니다. mesa3d 소스 코드에는 특정 플랫폼 용 라이브러리를 빌드하는 방법에 대한 문서가 있습니다. 특히 "README.MINGW32"추가 정보 파일이 있습니다.
는 그러나 단지 첫 번째 줄에 내가 설치 한 "mingw32-메이크업"프로그램이 없기 때문에 내가 실행할 수없는 명령
mingw32-make -f Makefile.mgw [OPTIONS...]
있다. 다른 소프트웨어에 의해, 나는 "고전적인"
./configure -> make -> make install
절차를 구축하는 데 사용하지만,이 mesa3d 라이브러리에서 작동하지 않습니다.
예를 들어, 나는 또한
./configure --host=i386-mingw32
을 시도하고 괜찮아요 구성되었지만 입력 한 후
make
는 몇 가지 오류
error: #error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.
을 던져 버리고 지금은 손실 오전 : - (.
그래서 누구나 mesa3d 라이브러리를 빌드하는 방법을 알고 있습니다. fo r mingw32와 함께 사용 하시겠습니까?
P.S : 그리고 물론
, 나는 마이크로 소프트 비주얼 스튜디오 결코 더 :-)를 사용하는 싶지 않아요. 또한 Linux에서 OpenGL 환경을 구축하고 크로스 컴파일을 위해 mingw32를 사용하기 위해 필요한 모든 것을하고 싶습니다. 나는 그것이 가능하기를 희망한다.P.S.2 :http://www.mesa3d.org/systems.html 페이지에서 MinGW를 Mesa 3D와 함께 사용하는 것이 "사용되지 않음"으로되어 있습니다. 나는 그런 식으로 사용할 권리가 있습니다.
그냥 궁금해 ... OpenGL은 일반적으로 하드웨어 가속 3D에 액세스하는 데 사용됩니다. Windows에서 메사를 사용하면 Windows에서 소프트웨어 구현에 의존하게됩니다. 그게 니가 원하는거야? 그렇지 않으면, 당신은 단지 윈도우 제공 OpenGL 라이브러리를 사용해야합니다. – Bahbar
내 기본 목표는 "아키텍처 독립적"인 C++ 코드 작성 -> 따라서 크로스 플랫폼 라이브러리 (이 경우에는 "mesa3d")를 사용하면이를 달성하는 좋은 방법이라고 생각합니다. 틀렸다. "각 Windows"에는 OpenGL을 구현하는 일부 "라이브러리"가 있고 Linux 컴퓨터에 OpenGL 코드를 작성할 때 내 프로그램과 함께 추가 OpenGL 라이브러리를 배포 할 필요가 없으므로 이해해야합니까? 그렇다면 "opengl.dll", "libopengl.lib"또는 무엇입니까? – Petike
OpenGL은 대개 플랫폼의 일부로 노출됩니다. Windows의 경우 Microsoft는 플랫폼 SDK에 OpenGL 인터페이스 (opengl.lib)를 제공했습니다. 나는 그 중 mingw 링커를 빌드하는 방법에 대해 정확히 어떻게 확신하는지 모르겠다. 그러나 확실히 mesa를 사용하는 것과는 다르다. – Bahbar