curl_global_init, curl_easy_init 및 기타 함수에 대한 정의되지 않은 참조(C)
C컬을 사용하려고 합니다.
Curl 공식 페이지를 방문하여 샘플 소스 코드를 복사했습니다.
다음 링크는 http://curl.haxx.se/libcurl/c/sepheaders.html 입니다.
이 코드를 명령어 "gcc test.c"로 실행하면
콘솔에 다음과 같은 메시지가 표시됩니다.
/tmp/cc1vsivQ.o: In function `main':
test.c:(.text+0xe1): undefined reference to `curl_global_init'
test.c:(.text+0xe6): undefined reference to `curl_easy_init'
test.c:(.text+0x10c): undefined reference to `curl_easy_setopt'
test.c:(.text+0x12e): undefined reference to `curl_easy_setopt'
test.c:(.text+0x150): undefined reference to `curl_easy_setopt'
test.c:(.text+0x17e): undefined reference to `curl_easy_cleanup'
test.c:(.text+0x1b3): undefined reference to `curl_easy_cleanup'
test.c:(.text+0x1db): undefined reference to `curl_easy_setopt'
test.c:(.text+0x1e7): undefined reference to `curl_easy_perform'
test.c:(.text+0x1ff): undefined reference to `curl_easy_cleanup'
나는 이것을 어떻게 해결해야 할지 모르겠다.
라이브러리와 링크하지 않습니다.
외부 라이브러리를 사용하는 경우 외부 라이브러리와 링크해야 합니다.
$ gcc test.c -lcurl
마지막 옵션은 GCC에 링크하도록 지시합니다(-l
)와 라이브러리의curl
.
Joachim Pileborg의 답변과 더불어 gcc/g++ 링크는 순서에 민감하며 링크된 라이브러리는 그에 의존하는 것을 따라야 한다는 것을 기억하는 것이 유용합니다.
$ gcc -lcurl test.c
실패하여 이전과 같은 기호를 놓치게 됩니다.제가 이 사실을 잊어버려서 이 페이지를 찾아왔기 때문에 말씀드리는 겁니다.
같은 문제가 있습니다만, make 파일에 g++를 사용하고 있습니다.이것은 링커 문제입니다.컴파일러와 링커에서 옵션 -lcurl을 추가해야 합니다.make 파일에 있는 내 경우:
CC ?= gcc
CXX ?= g++
CXXFLAGS += -I ../src/ -I ./ -DLINUX -lcurl <- compile option
LDFLAGS += -lrt -lpthread -lcurl <- linker option
제라드
상황이 얼마나 나쁜지에 따라서는 LDFLAGS에 -L/something이 필요할 수 있습니다.ldconfig는 부팅 시마다 해당 파일을 픽업하여 검색하도록 되어 있지만, 새로운 머신에서는 /etc/ld.so.conf에 디렉토리를 추가하는 등 약간의 작업이 필요할 수 있습니다.
언급URL : https://stackoverflow.com/questions/16476196/undefined-reference-to-curl-global-init-curl-easy-init-and-other-functionc
'programing' 카테고리의 다른 글
VueJS + Gravity Forms API (0) | 2022.05.29 |
---|---|
JAXB에 의해 생성된 @XmlRootElement가 없습니다. (0) | 2022.05.29 |
vue b-table 모든 행을 표시하도록 페이지 번호 사용자 지정 (0) | 2022.05.29 |
콘솔을 사용하여 커밋에 데이터를 삽입하려면 어떻게 해야 합니까?VueX (0) | 2022.05.29 |
RGB를 HSV로 변환하고 HSV를 RGB로 변환하는 알고리즘(0~255) (0) | 2022.05.29 |