2013-07-05 7 views
4

저는 autotools를 광산 라이브러리의 빌드 시스템으로 사용하고 있습니다. 최근에 라이브러리가 Windows로 포팅되었습니다. 이상한 오류가 발생했지만 라이브러리가 성공적으로 컴파일되고 링크됩니다. configure 및 make 후에는 정적 라이브러리 만 있습니다. 내가 가진libtool : 정의되지 않은 기호를 사용할 수 없습니다. i686-pc-mingw32에있는 t을 공유했습니다.

#ifdef _WIN32 
# ifdef DLL_EXPORT 
#  define LIBRARY_API __declspec(dllexport) 
# else 
#  define LIBRARY_API __declspec(dllimport) 
# endif 
#endif 
#ifndef _WIN32 
# define LIBRARY_API 
#endif 

그리고 모든 단일 정의 :이 코드로 Windows 시스템에 대한 모든 문자를 보낸

libtool: undefined symbols not allowed in i686-pc-mingw32 shared 

: Evertything는 libtool에서 경고를 제외하고 OK 보이는

class LIBRARY_API myClass { 
// ... 

메모 :
오페라 팅 시스템 : 윈도우 8 x86_64에
컴파일러 스위트 : 당신이 -no-undefined 플래그를 전달해야 또한

LT_INIT([win32-dll]) 

:는 MinGW의 x86_64에, MSYS의 86 당신의 configure.ac에서

답변

10

,처럼 libtool이 초기화가 보이는 확인 Makefile.am에 libtool을 설치하십시오. 이 플래그는 경고를 표시하지 않습니다.

libexample_la_LDFLAGS = -no-undefined 

자세한 내용은 LT_INIT documentation에서 자세히 알아보십시오.