2013-05-24 1 views
0

I했습니다 오류 또는 경고하지만, pppd는이 플러그인을로드 할 때, 그것은 "정의되지 않은 심볼 g_string_sized_new"메시지와 함께 실패와 컴파일 된 공유 라이브러리 (pppd를 플러그인).는 pppd를 공유 라이브러리를로드 할 수 없습니다 - 정의되지 않은 기호는 g_string_sized_new

플러그인 소스는 여기에서 찾을 수 있습니다 :이 g_string_sized_new이 입심에 있어야 찾을으로

gcc -fPIC -c ./mm-test-pppd-plugin.c -o mm-test-pppd-plugin.o `pkg-config --cflags --libs glib-2.0` 
gcc -shared -o ./mm-test-pppd-plugin.so ./mm-test-pppd-plugin.o 

: https://raw.github.com/openshine/ModemManager/master/test/mm-test-pppd-plugin.c

내가 다음 명령을 사용하여 공유 라이브러리를 컴파일하려면. 따라서 시스템 전반에 걸쳐 사용할 수 있어야한다는 것을 알고 있습니까?

OS : 13.04

어떤 아이디어 우분투는 무엇이 잘못 될 수 있을까? 미리 감사드립니다!

답변

0

편집은 링크가 아니므로 링크가 컴파일되지 않습니다. 첫 번째 줄에

, 당신은 너무 에 관한 것은 오브젝트 코드로 C 소스 텍스트를 컴파일 컴파일러를 호출한다. pkg-config--libs 플래그를 제공하면 완전히 불필요합니다. 순수 컴파일러는 라이브러리를 사용하여 아무 것도 할 수 없습니다.

그러나, 두 번째 줄에, 당신은 링커,를 사용하여 적절한 실행 파일로 링크 결과 객체 파일을하려고하지만, 지금은 명령 줄의 끝에서 pkg-config --libs 누락합니다 - 링커는 심볼을 해석 할 수 있도록 연결될 라이브러리를 알아야합니다.

Long story short, read this.

+0

감사합니다. 필자가해야 할 일은'pkg-config --cflags --libs glib-2.0'을 두 번째 줄 끝에 추가하는 것입니다. – kasd9879872

+0

@UldisJansons ** -''--cflags'을 사용하지 마십시오. 이유는 (글쎄, 내가 설명한 이유는 ** 이유 **)'--cflags'와'--libs'가'pkg-config'를위한 두 개의 다른 플래그가되는 이유입니다. –

관련 문제