문제

Ubuntu에서 간단한 PJSIP 프로그램을 컴파일하려고합니다. 나는 오류가 발생합니다

/usr/bin/ld: cannot find -lpjsua-i686-pc-linux-gnu

무슨 뜻인가요?

다음은 다음과 같습니다.-

root@mypc-desktop :/home/mypc/pjsip# make

gcc -o myapp myapp.cpp -DPJ_AUTOCONF=1 -O2 -I/home/mypc/pjproject-1.4.5/pjlib/include -I/home/mypc/pjproject-1.4.5/pjlib-util/include -I/home/mypc/pjproject-1.4.5/pjnath/include -I/home/mypc/pjproject-1.4.5/pjmedia/include -I/home/mypc/pjproject-1.4.5/pjsip/include -L/home/mypc/pjproject-1.4.5/pjlib/lib -L/home/mypc/pjproject-1.4.5/pjlib-util/lib -L/home/mypc/pjproject-1.4.5/pjnath/lib -L/home/mypc/pjproject-1.4.5/pjmedia/lib -L/home/mypc/pjproject-1.4.5/pjsip/lib -L/home/mypc/pjproject-1.4.5/third_party/lib -lpjsua-i686-pc-linux-gnu -lpjsip-ua-i686-pc-linux-gnu -lpjsip-simple-i686-pc-linux-gnu -lpjsip-i686-pc-linux-gnu -lpjmedia-codec-i686-pc-linux-gnu -lpjmedia-i686-pc-linux-gnu -lpjmedia-audiodev-i686-pc-linux-gnu -lpjnath-i686-pc-linux-gnu -lpjlib-util-i686-pc-linux-gnu -lresample-i686-pc-linux-gnu -lmilenage-i686-pc-linux-gnu -lsrtp-i686-pc-linux-gnu -lgsmcodec-i686-pc-linux-gnu -lspeex-i686-pc-linux-gnu -lilbccodec-i686-pc-linux-gnu -lg7221codec-i686-pc-linux-gnu -lportaudio-i686-pc-linux-gnu -lpj-i686-pc-linux-gnu -lm -lnsl -lrt -lpthread

/usr/bin/ld: cannot find -lpjsua-i686-pc-linux-gnu collect2: ld returned 1 exit status make: *** [myapp] Error 1

코드는 다음과 같습니다

#include <pjlib.h>
#include <pjlib-util.h>
#include <pjmedia.h>
#include <pjmedia-codec.h>
#include <pjsip.h>
#include <pjsip_simple.h>
#include <pjsip_ua.h>
#include <pjsua-lib/pjsua.h>

int main()
{
        return 0;
}

여기에 makefile이 있습니다

#Modify this to point to the PJSIP location.
PJBASE=/home/mypc/pjproject-1.4.5

include $(PJBASE)/build.mak

CC      = $(APP_CC)
LDFLAGS = $(APP_LDFLAGS)
LDLIBS  = $(APP_LDLIBS)
CFLAGS  = $(APP_CFLAGS)
CPPFLAGS= ${CFLAGS}

# If your application is in a file named myapp.cpp or myapp.c
# this is the line you will need to build the binary.
all: myapp

myapp: myapp.cpp
        $(CC) -o $@ $< $(CPPFLAGS) $(LDFLAGS) $(LDLIBS)

clean:
        rm -f myapp.o myapp

감사

편집하다:

방금 PJSIP를 구축하는 오류가 있음을 알았습니다.

2] : 디렉토리를 입력하십시오 /home/mypc/pjproject-1.4.5/pjnath/build' gcc -c -Wall -DPJ_AUTOCONF=1 -O2
-Wno-unused-label -Werror -I../include -I../../pjlib/include -I../../pjlib-util/include \ -o output/pjnath-i686-pc-linux-gnu/stun_session.o \ ../src/pjnath/stun_session.c cc1: warnings being treated as errors ../src/pjnath/stun_session.c: In function ‘apply_msg_options’: ../src/pjnath/stun_session.c:230: error: suggest parentheses around && within || make[2]: *** [output/pjnath-i686-pc-linux-gnu/stun_session.o] Error 1 make[2]: Leaving directory
/home/mypc/pjproject-1.4.5/pjnath/build 'make [1] : * [pjnath] 오류 2 make [1] : 디렉토리`/home/mypc/pjproject-1.4.5/pjnath/build 'make : * 모두] 오류 1

내가 찾아 내려고했을 때 /home/mypc/pjproject-1.4.5/pjnath/build, $(PJDIR)/build.mak 그리고 $(PJDIR)/build/common.mak 거기에 존재하지 않는 사람이 어디에 있는지 아는 사람이 없습니까?

도움이 되었습니까?

해결책

PJ*는 Neccessary Libaries를 구축 할 수없는 것 같습니다. 간단한 수정을 위해 라인을 찾으려고 노력하십시오. /home/mypc/pjproject-1.4.5/build.mak 어디 -Werror 추가됩니다 $(APP_CFLAGS) 그리고 그것을 제거하십시오 ( -Werror, 다른 플래그가 추가되는 경우 전체 라인이 아닙니다 :).

또는 230 행에 GCC가 제안한 수정 사항을 적용하십시오. src/pjnath/stun_session.c.

편집하다:
당신이 아니오를 찾았다는 것을 읽으십시오 -Werror. stun_session.c의 라인 230을 붙여 넣을 수 있습니까?
소스 라인이 선호됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top