2014-01-06 3 views
0

나는 C 또는 C++로 작업하는 데 익숙하지 않고 컴파일러가 참조 손실을 찾을 수 있도록 노력하고 있습니다.CFLAGS 및 둘 이상의 참조를 할당 하시겠습니까?

나는 이라는 구성 파일을 구성하여이라는 메이크 파일을 만듭니다.

는 그럼 난 실행 메이크 파일을 만들 수 있습니다 :

CFLAGS=-I/usr/include/libxml2 ./configure --enable-murder 

나는이 줄을 실행하지만, CFLAGS에 두 개의 참조 주어진?

은 참조를 가리 키도록하려는 컴파일, 명확 더보기 있으려면 :

  • 는/usr/
  • 는/usr /가 CFLAGS에

libical/포함/libxml2를을 포함한다. 내가 메이크 파일을 편집 할 수 없기 때문에

이며, 나는 다음과 같은 오류를 수정하려는 :

http_caldav.o: In function `is_valid_timerange': 
http_caldav.c:(.text+0x3c86): undefined reference to `icaltime_is_valid_time' 
http_caldav.c:(.text+0x3cd8): undefined reference to `icaltime_is_valid_time' 
http_caldav.c:(.text+0x3d2a): undefined reference to `icaltime_is_date' 
http_caldav.c:(.text+0x3d7c): undefined reference to `icaltime_is_date' 
http_caldav.c:(.text+0x3dce): undefined reference to `icaltime_is_utc' 
http_caldav.c:(.text+0x3e23): undefined reference to `icaltime_is_utc' 
http_caldav.o: In function `parse_comp_filter': 
http_caldav.c:(.text+0x3e7d): undefined reference to `xmlStrcmp' 
http_caldav.c:(.text+0x3e98): undefined reference to `xmlGetProp' 
http_caldav.c:(.text+0x3eb7): undefined reference to `xmlStrcmp' 
http_caldav.c:(.text+0x3f02): undefined reference to `xmlStrcmp' 
http_caldav.c:(.text+0x3f19): undefined reference to `xmlStrcmp' 
http_caldav.c:(.text+0x3f46): undefined reference to `xmlStrcmp' 
http_caldav.c:(.text+0x3f71): undefined reference to `xmlStrcmp' 
http_caldav.o:http_caldav.c:(.text+0x3f9c): more undefined references to `xmlStrcmp' follow 
http_caldav.o: In function `parse_comp_filter': 
http_caldav.c:(.text+0x4077): undefined reference to `xmlFree' 
http_caldav.c:(.text+0x40cc): undefined reference to `xmlStrcmp' 
http_caldav.c:(.text+0x40d9): undefined reference to `icaltimezone_get_utc_timezone' 
http_caldav.c:(.text+0x410f): undefined reference to `xmlGetProp' 
http_caldav.c:(.text+0x412d): undefined reference to `icaltime_from_string' 
http_caldav.c:(.text+0x4171): undefined reference to `xmlFree' 
http_caldav.c:(.text+0x41a0): undefined reference to `icaltime_from_timet_with_zone' 
http_caldav.c:(.text+0x41f2): undefined reference to `xmlGetProp' 
http_caldav.c:(.text+0x4210): undefined reference to `icaltime_from_string' 
http_caldav.c:(.text+0x4254): undefined reference to `xmlFree' 
http_caldav.c:(.text+0x4283): undefined reference to `icaltime_from_timet_with_zone' 

config.log를

gcc-4.7.real: error: unrecognized command line option '-V' 
gcc-4.7.real: fatal error: no input files 
compilation terminated. 
configure:3214: $? = 4 
configure:3203: gcc -qversion >&5 
gcc-4.7.real: error: unrecognized command line option '-qversion' 
gcc-4.7.real: fatal error: no input files 
compilation terminated. 
conftest.c:13:28: fatal error: ac_nonexistent.h: No such file or directory 
conftest.c:56:26: fatal error: minix/config.h: No such file or directory 
conftest.c:37:9: error: unknown type name 'not' 
conftest.c:37:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'universal' 
conftest.c:37:15: error: unknown type name 'universal' 
gcc-4.7.real: error: unrecognized option '-R' 

내 OS가

+0

'CFLAGS'와 함께 두 개의 경로를 추가 하시겠습니까? –

+0

링크 시간 오류입니다. CFLAGS에 더 많은 경로를 추가하는 것은 도움이되지 않습니다. 머리말을 찾는 것 같습니다. 해당 라이브러리에 대한 개발 패키지를 설치해야 연결될 수 있습니다. – ldav1s

+0

@ ldav1s 좋은 장소! –

답변

4

만약 데비안 7입니다 두 개의 포함 경로를 추가하려면 따옴표로 묶으십시오.

CFLAGS="-I/usr/include/libxml2 -I/usr/include/libical" ./configure --enable-murder 

링커 오류를 수정하려면 LDLIBS과 함께 라이브러리를 추가해야합니다.

CFLAGS="..." LDLIBS="-lxml2 -lical" ./configure --enable-murder 
+2

일반적으로 변수를 환경 변수가 아닌'configure' 스크립트에 _arguments_로 추가하는 것이 좋습니다. 그래서, ./configure --enable-murder CFLAGS = "..."LDLIBS = "..."' – MadScientist

+0

@ ldav1s 이제 이것을 시도해 보아도 여전히 고칠 수 없다. 죄송하지만 C 또는 C++로 작업하지 않으므로이 작업을 수행하려고합니다. 나는 그것을 배우고 고치고 싶다. 내가 뭘 할 수 있는지에 대한 제안은? –

+0

@ MariaJosé 추가 또는 다른 오류 메시지가 있습니까? –