1

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;
}

ここにメイクファイルがあります

#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 のビルド中にエラーが発生していることに気付きました

make[2]: ディレクトリ /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' 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

に存在する make ファイルで -Werror を見つけようとしましたが、存在し/home/mypc/pjproject-1.4.5/pjnath/buildない 場合、どこにあるか知っている人はいますか?$(PJDIR)/build.mak$(PJDIR)/build/common.mak

4

1 に答える 1

2

pj* は必要なライブラリをビルドできないようです - 簡単な修正のために、が追加された/home/mypc/pjproject-1.4.5/build.mak場所の行を見つけて削除してみてください (他のフラグが追加されている場合は、行全体ではなく :)。-Werror$(APP_CFLAGS)-Werror

または、 の 230 行目で gcc によって提案された修正を適用しますsrc/pjnath/stun_session.c

編集:
no が見つからなかったことを読んでください-Werror。stun_session.c の 230 行目または make-file をどこかに貼り付けていただけますか?
ソース行が優先されます。

于 2009-10-24T17:04:19.100 に答える