programing

/usr/bin/ld: makefile로 컴파일하는 동안 -lc를 찾을 수 없습니다.

yellowcard 2023. 6. 19. 21:22
반응형

/usr/bin/ld: makefile로 컴파일하는 동안 -lc를 찾을 수 없습니다.

컨텍스트 먼저:헤더(event.h), event.c라는 프로그램, 메인 프로그램 main.c가 있습니다.이 프로그램은 컴파일되어 먼저 개체 프로그램(event.o)을 생성한 다음 별도의 폴더에 있는 정적 라이브러리(libevent.a)를 생성하고 실행 프로그램 work1.exe를 생성합니다.

이 작업을 수행하기 위해 다음 makefile을 만들었습니다.

work1 : main.c libevent.a
    gcc -static main.c -L./lib -levent -o work1 -Wall

event.o: event.c
gcc -c event.c -Wall

libevent.a: event.o
ar rcs lib/libevento.a event.o 

clean: 
rm work1 *.o

makefile을 실행한 결과 다음 오류가 발생합니다.

 $ make
 gcc -c event.c -Wall
 ar rcs lib/libevent.a event.o 
 gcc -static main.c -L./lib -levent -o work1 -Wall
 /usr/bin/ld: cannot find -lc
 collect2: ld returned 1 exit status
 make: *** [work1] Error 1

무슨 일이 일어나고 있는지 아십니까?아무것도 설치하지 않고 이것을 컴파일할 수 있는 방법이 있습니까?

특정 오류는 다음 행입니다.

/usr/bin/ld: cannot find -lc

링커가 라이브러리를 정적으로 연결하는 데 필요한 C 라이브러리를 찾을 수 없습니다.당신은 시도해 볼 수 있습니다.libc.a을(를) 호출하여 시스템에 이미 존재합니다.locate libc.a이것이 반환되면, 다음을 포함하는 디렉토리를 가리키는 적절한 라이브러리 플래그를 추가합니다.libc.a.

한다면libc.a가 설치되어 있지 않습니다. 라이브러리를 정적으로 컴파일하려면 라이브러리를 설치해야 합니다.당신이 CentOS에 있다고 말했기 때문에, 당신은 이것을 성취할 수 있을 것입니다.yum install glibc-static.

언급URL : https://stackoverflow.com/questions/16024978/usr-bin-ld-cannot-find-lc-while-compiling-with-makefile

반응형