확인을 클릭하면 문제가 해결되지 않을 수 있습니다. -lyajl을 사용하여 C++ 프로그램을 C 공유 라이브러리 (YAJL로 이름 지정)와 연결하려고합니다. 링커는 (은 그것에 대해 불평하지 않습니다)을 찾을 것으로 보인다하지만 난 내 코드에서 사용하는 기호를 찾을 수 없습니다 : g ++에서 링크를 찾을 때 기호를 찾을 수 없습니다.
$> g++ test.c -lyajl
Undefined symbols for architecture x86_64:
"yajl_tree_parse(char const*, char*, unsigned long)", referenced from:
_main in ccEqsAaJ.o
"yajl_tree_get(yajl_val_s*, char const**, yajl_type)", referenced from:
_main in ccEqsAaJ.o
"yajl_tree_free(yajl_val_s*)", referenced from:
_main in ccEqsAaJ.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
$>
내가 동작을 분리하는 미니멀 TEST.C 파일을했다. 그럼, 아주 이상한 것은 (덧붙여 말하자면, TEST.C 그냥 C 코드, 여기에 기능 ++없는 C처럼) GCC 코드와 완벽하게 OK 것이다 :
$> gcc test.c -lyajl
$>
그 g을하고 GCC입니다 ++하지 않는 것 같습니다 무엇 할 수있는 권리?
예, 그게 전부입니다. 감사 ! – Fabien