2014-12-01 8 views
1

현재 현재 프로젝트 옆에있는 다른 프로젝트의 libtool 라이브러리를 포함하려고합니다. 구성에서 라이브러리를 확인하려면 configure.ac에Autotools : top_srcdir 및 abs_top_srcdir이 비어 있습니다.

LDFLAGS="$LDFLAGS -L$top_srcdir../otherproject/libotherproject/.libs/" 
AC_CHECK_LIB([otherproject],[init],[],[AC_MSG_ERROR([No otherproject libary found.])]) 

을 사용하십시오. 지금까지는 괜찮습니다. 내가 만들어 사용하여 프로젝트를 빌드하는 경우가 currentproject에있는 동안, 나는이 libtool이에서 오류가/소스/:이 ../../otherproject/libotherproject/.libs/과 같이해야하기 때문에, 논리적

../libtool: line 5986: cd: ../otherproject/libotherproject/.libs/: No such file or directory 
libtool: link: cannot determine absolute directory name of `../otherproject/libotherproject/.libs/' 

. 나는 그것을 디버깅을 시도하고있는 경우 configure.ac에

AC_MSG_NOTICE([Top src dir is: $top_srcdir]) 

를 사용하는 것이 발견의 구성 스크립트는

configure: Top src dir is: 

나에게 알려줍니다. $ abs_top_srcdir에 대한 동일한 동작. $ srcdir은 "."입니다. 항상. 나는 문서에서 조금 파고 들었고 $ builddir은 항상 "."이어야하지만, 나의 경우에는 비어있다. 이거 버그 야? 아마 AC_init_anything에 전화하는 걸 잊었을까요? 당신의 도움을 주셔서 감사합니다!

+1

libtool과 함께'.libs' 서브 디렉토리를 사용한다는 것은 확실하지 않습니다. '/libxxx.la' 만 전달하면됩니다. 'configure' 스크립트와'Makefile.in' 템플릿을 생성하기 위해 어떤 단계를 사용하고 있습니까? –

+0

보통 내 파일을 생성하기 위해 autoconf와 automake를 실행하고 있습니다. 어디서 .la-File 경로를 통과해야합니까? – Martze

답변

0

srcdir을 변수로 사용하여 빌드 된 개체의 경로를 결정하면 안됩니다. 대신 $(top_builddir)을 사용하십시오.

Makefile 변수를 사용하려면 대괄호 ($() 또는 ${})를 사용해야합니다.