2017-01-18 2 views
1

이 같은 공유 라이브러리 (.so)를 구축 할 수 있습니다 설치하지 않고 공유 라이브러리를 구축하는 방법 :Automake가 : 그것은 Automake가와

lib_LTLIBRARIES = libyeah.la 
libyeah_la_SOURCES = yeah.c 

다음 libyeah.somake install$(libdir)에 설치됩니다.

라이브러리 설치를 피하기 위해 대신에 noinst_ 접두어를 지정하면 공유 객체 (보관 파일, .a)로 빌드되지 않습니다. 라이브러리가 실제로는 에 링크 된 적이없는 것으로 보입니다.

프로젝트 테스트 (테스트 프로그램에 의해 동적으로로드되는 테스트 플러그인)를 위해 공유 오브젝트를 설치하지 않고 필요합니다.

나는 -module-sharedlibyeah_la_LDFLAGS에 성공적으로 추가하려고 시도했다.

+0

[Automake : 설치하지 않을 공유 모듈 구축] (https://stackoverflow.com/questions/8277478/automake-building-shared-module-which-is-not-to-be- 설치) –

답변

0

당신은 기본 libdir을 무시하고 /usr/local/lib 대신 다른 디렉토리에 설치할 수 있습니다 (당신이 configure 시간에 기본 --prefix을 사용하는 경우)

make DESTDIR=/home/user/staging install 

/home/user/staging/usr/local/lib에 lib 디렉토리를 설치합니다. 그런 다음 (Linux에서 기본 플랫폼이 무엇인지 명시하지 않았다면)

LD_LIBRARY_PATH=/home/user/staging/usr/local/lib test_libyeah 

테스트를 실행하십시오.

+0

머리카락을 나눌 지 모르지만 질문은 "설치하지 않고 공유 라이브러리를 만드는 방법"*입니다. 아마'make install'은 그것을 설치하지 않을 것입니다. 당신의 대답은 그것을 다른 곳에 설치하는 법을 보여줍니다. 이것은 다른 질문입니다. – jww