2010-12-27 6 views
3

리눅스 (우분투)에서 C로 소스 파일을 컴파일하려고합니다. 다음 명령을 실행하려고하면 "ruby.h"를 찾을 수 없다는 오류가 표시됩니다.리눅스에서 GCC를 사용하여 간단한 소스 파일을 컴파일하는 방법

gcc custom_ext.c 

이렇게하면 다음과 같은 오류 메시지가 나타납니다.

custom_ext.h:10: fatal error: ruby.h: No such file or directory 

그래서 나는 전체 루비 소스 코드를 다운로드 더미 디렉토리 /home/braga/ruby_source/ruby_1_8_7에 넣어. 나는 GCC가 ruby.h를 식별하고 선택할 수 있도록이 디렉토리를 경로에 포함시켜야한다는 것을 알고 있지만 어떻게해야하는지에 대해서는 모른다. 도와주세요!!!

+1

gcc -I/home/braga/ruby_source/ruby_1_8_7 custom_ext.c – W55tKQbuRu28Q4xv

답변

7

"ruby-dev"패키지를 설치 했습니까?

"apt-get", "aptitude"또는 다른 패키지 관리자 프론트 엔드를 사용하여 우분투 저장소에서 패키지를 설치하면됩니다. 소스를 다운로드 할 필요가 없습니다. 패키지를 설치하면 표준 디렉토리에 필요한 모든 헤더 및 라이브러리가 표시되므로 컴파일러 키를 다룰 필요가 없습니다.

repos에 필요한 패키지가 없거나 오래된 패키지 인 경우에만 소스 코드 타르볼을 다운로드하고 설치해야합니다 (따라서 tarball 지침에 포함되어 있음, 종종 INSTALL 파일에 포함).

+0

고마워, 정말 도움이되었다. – bragboy

+0

Mac OS X에서 rbenv와 동일한 문제가 발생했는데, 이것이 도움이되지 않는다. –

1

-I /home/braga/ruby_source/ruby_1_8_7. 비록 ruby.h이 그 서브 디렉토리에 있기 때문에 그 디렉토리를 찾아 사용해야합니다.

+0

답변 해 주셔서 감사합니다. 이제 다른 오류가 발생했습니다. '/home/braga/ruby_source/ruby_1_8_7/ruby.h:24 : 치명적인 오류 : config.h : 그런 파일이나 디렉토리가 없습니다. ' config.h를 루비 소스에서 찾았습니다. 그 디렉토리는 vms입니다. 지금 어떻게해야합니까? – bragboy

1

- 도움을 드리겠습니다. 는 이것은 출발점이 될 수 찾기/-name ruby.h 를 사용하여 얻을 경로를 추가하고 당신은 루비 확장을 컴파일하려고 할 것 때문에 성공적

1

을 할 수 컴파일 도베 이상의 경로를 추가해야 할 수도 있습니다 this question이 도움이 될 수 있습니다. 소스를 다운로드하거나 수동으로 해킹하는 것은 항상 나쁜 생각이며, 항상 공식적이고 편리한 방법이 있습니다. 임의의 장소에 파일을 두는 것을 발견했다면 잠시 멈추고 잘못하지 않았는지 확인하십시오.

순전히 편의상 이유로, 다운로드 한 헤더가 링크하려는 이진 라이브러리와 일치하지 않을 수 있기 때문에 저장소에서 관련 개발 패키지를 모두 설치하는 것이 좋습니다. 그렇지 않은 경우 바이너리 호환이되지 않으면 심각한 문제가 있음을 알 수 있습니다. apt-file search 및 apt-cache search 명령은 필요한 특정 패키지 이름을 찾는 데 매우 유용합니다.

관련 문제