확장자가 .o
인 두 개의 프로그램을 연결하려고 할 때 컴파일러가 "012s"과 그 밖의 다른 내용을 이해하지 못합니다.연결시 정의되지 않은 참조 오류가 발생했습니다.
은 그 명령을 Cygwin
터미널에서 이러한 프로그램을 사용하고 있습니다 :
gcc -o file file1.o file2.o
내가 같은 math.h
가 (그래서 -lm
필요)를 포함하는 다른 라이브러리를 필요가 없습니다.
헤더 파일에는 두 가지 기능 만 있으며 필자는이를 주 프로그램에 포함 시켰습니다. 링커가 모두 올바른 연결을 할 수 있도록 서로를 참조하는 객체의 경우
file1.o:file1.c(.text+0x2a): undefined reference to `Function1'
file1.o:file1.c:(.text+0x104): undefined reference to `Function2'
/usr/lib/gcc/i686-pc-cygwin/4.7.3/../../../../i686-pc-cygwin/bin/ld: file1.o: bad reloc address 0x20 in section `.eh_frame'
/usr/lib/gcc/i686-pc-cygwin/4.7.3/../../../../i686-pc-cygwin/bin/ld: final link failed: Invalid operation
collect2: error: ld returned 1 exit status
코드를 보지 않고도 문제를 진단하기가 어려울 것입니다. 관련 코드를 게시 할 수 있습니까? –
조금 길지만 시도해 보겠습니다 ... : – user3476125
서로 참조하고 있습니까? 때로는 .o 파일을 링크 경로에 두 번 이상 추가해야합니다. – Jiminion