2015-01-12 3 views
-1

최근 linux (mint 17)를 다시 설치하고 프로젝트를 빌드하고 실행 한 후 swrast을로드하지 못했다고 불평했습니다. 본인은 ATI의 드라이버를 설치해야 할 거라고 생각하고 실제로 그것은 문제를 해결 : 지금 데ATI propietary drivers libgl.so의 이름을 바꿉니다.

Graphics: Card: Advanced Micro Devices [AMD/ATI] Oland XT [Radeon HD 8670/R7 250] bus- ID: 01:00.0 
X.Org: 1.15.1 driver: fglrx Resolution: [email protected] 
GLX Renderer: AMD Radeon R7 200 Series GLX Version: 4.4.13283 - CPC 14.501.1003 Direct Rendering: Yes 

문제는 make가 libGL.so

을 찾을 수 없기 때문에 나는 더 이상 프로젝트를 빌드 할 수 없다는 것입니다
No rule to make target `/usr/lib/x86_64-linux-gnu/libGL.so 

는보고를했고, 이름이 바뀐 버전, 내가 ... 무슨 일이 일어나고 있는지 내가 몇 가지 링크를 만들 수 있다고 생각

/usr/lib/FGL.renamed.libGL.so.1.2 
/usr/lib/libGL.so 
/usr/lib/libGL.so.1 
/usr/lib/libGL.so.1.2 
/usr/lib/fglrx/fglrx-libGL.so.1.2 
/usr/lib/i386-linux-gnu/libGL.so 
/usr/lib/i386-linux-gnu/libGL.so.1 
/usr/lib/i386-linux-gnu/libGL.so.1.2 
/usr/lib/i386-linux-gnu/fglrx/fglrx-libGL.so.1.2 
/usr/lib/i386-linux-gnu/mesa/FGL.renamed.libGL.so.1.2.0 
/usr/lib/x86_64-linux-gnu/mesa/FGL.renamed.libGL.so.1.2.0 

를 모르는 될 것 같다하지만 난 몰라 어느. 나는 과거에 해왔고 ati 설치를 엉망으로 만들었습니다.

+2

왜 '/ usr/lib/libGL.so'를 사용할 수 없습니까? 링커는'-lGL'을 요청할 때 표준 이름을 기대합니다. – keltar

+0

어떻게하면됩니까? 나는 그것을 포함하지 않을 것이다. glfw는 나 자신이다. 그냥 표준을 사용하면 안되나요? –

+3

'No rule to make target '은 메이크 파일이 그 파일에 정확히 의존한다는 것을 의미합니다. 엄밀히 말하면 동적 라이브러리 변경 후 프로그램을 다시 빌드하는 것이 좋습니다. makefile을 확인하고이 종속성을 제거하십시오. – keltar

답변

0

작동합니다. ati 드라이버를 설치 한 후에 netbeans가 실제로 make 파일을 재생성하지 못했고 이전 위치에서 종속성을 끌어 내려고 있다고 생각했습니다. 물론 드라이버는 여전히 펑키 한 일을하지만 적어도 나는 그들이 자신의 심볼릭 링크를 생성한다고 생각한다. 나는 프로젝트를 삭제하고 다시 가져 왔으며 이제는 제대로 작동한다.

2

는보고를했고, 이름이 바뀐 버전, 내가 ... 무슨 일인지 모르겠다 될 것 같다

libGL.so 그것이 전체를 포함 실제로 GPU 드라이버의 일부 (이다 OpenGL 구현). 이것은 opengl32.dll이 드라이버를 연결하는 고리를 제공하는 Windows와 다릅니다. 기술적으로 리눅스에서이 후킹 메커니즘을 사용하는 것이 더 좋았지 만, 불행히도 우리는 그렇지 않습니다.

상황을 부드럽게하기 위해 Linux 배포판의 패키지 관리자는 일반적으로 드라이버의 libGL.so을 격리 된 디렉토리에 설치하고 /usr/lib/에 심볼릭 링크를 만듭니다. 어떤 이유에서든 배포판의 패키지 관리자가 설치하지 않은 독점 드라이버의 바이너리 패키지는이 규칙을 따르지 않고이 구조를 거치지 않습니다.

솔직히 말해서, 이러한 심볼릭 링크 kludges를 만드는 대신 그 후킹 메커니즘을 구현하는 것이 훨씬 쉬울 것입니다.

+0

전적으로 동의합니다. 대답 해줘서 고마워. –