원본 번역 오류를 배열하는 기교

make 사용 팁


리눅스에서 원본 코드를 컴파일할 때 오류가 발생하는 것은 정상적인 일이며, 관건은 오류 정보를 볼 줄 아는 것이다.일반적인 Linux에서의 오류는 주로 경로, 권한, 링크 라이브러리에 의해 발생하는데 이러한 내용을 선별하여 오류의 원인을 찾아내고 해결할 수 있다.
번역 시간이 길고 출력이 많은 라이브러리나 프로그램은make2>&1|teebuild를 사용할 수 있습니다.로그는 파일과 컨트롤러에서 표준 출력, 표준 오류 출력을 동시에 출력합니다
그리고 로그 파일에서/error/ERROR/ABORT 를 직접 검색하여 오류 정보를 봅니다.

ask


make 2>&1 | tee build.로그 해석
문제1:2,&1은 무슨 뜻입니까 문제2:make>build.log 뭐가 달라요?

answer


문제 1: 파일 설명자를 나타냅니다.0 stdin, 1 stdout, 2 stderr 2>&1은 표준 오류가 표준 출력으로 바뀌는 문제를 나타냅니다. 2: 작용에 차이가 없습니다. 후자는make의 모든 출력을 파일build로 바꿉니다.로그 중
1.  2>&1, , ;
2. tee 

find 사용 기교


오류 보고: undefine reference XXX 변수 또는 함수
원인은 기본적으로 관련lib 라이브러리 파일을 찾을 수 없거나, 기계에 이 라이브러리 파일이 없거나, 환경 변수가 설정되어 있지 않아서, 이 파일에 연결할 수 없기 때문이다.
다음 명령을 시도할 수 있습니다
find . -type f  -exec grep -Ho nc_get_vars {} \; | uniq

역할: 현재 디렉터리에 있는 모든 파일에서 변수 찾기 nc_get_vars 및 출력 파일 이름
특수 기호가 있는 예:udunits.h는 더블 인용부호인'udunits.h'로 포함해야 한다
일반적으로configure 파일에서 이lib 파일을 연결하는 변수를 찾거나 원본 파일을 직접 찾습니다
파일을 찾을 수 없는 경우
쓸만하다
find . -name "udunits.h"

이 파일이 현재 디렉토리에 있는지 확인하기 위해
ubuntu 시스템은
apt-cache search udunits

소프트웨어 소스에 라이브러리가 있는지 찾기

좋은 웹페이지 즐겨찾기