C++ 错误:在ubuntu下编译简单的PjSIP程序
我试图在ubuntu下编译简单的PjSIP程序。我得到的错误是C++ 错误:在ubuntu下编译简单的PjSIP程序,c++,linux,sip,pjsip,C++,Linux,Sip,Pjsip,我试图在ubuntu下编译简单的PjSIP程序。我得到的错误是 /usr/bin/ld: cannot find -lpjsua-i686-pc-linux-gnu 这是什么意思 以下是输出:- root@mypc-桌面:/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/pjproj
/usr/bin/ld: cannot find -lpjsua-i686-pc-linux-gnu
这是什么意思
以下是输出:-
root@mypc-桌面:/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/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/pjproject-1.4.5/pjlib/p4.5-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/lib-L/home/mypc/pjproject-1.4.5/third_/lib-lpjsua-i686-pc-linux-gnu-jsp-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-lmilenage-i686-pc-linux-gnu-lsrtp-i686-pc-linux-gnu-lgsmcodec-i686-linux-gnu-peelsi686-linux-gnu-linux-gnu-lg7221codec-i686-pc-linux-gnu-LPORTADIO-i686-pc-linux-gnu-lpj-i686-pc-linux-gnu-lm-lnsl-lrt-lpthread
/usr/bin/ld:找不到-lpjsua-i686-pc-linux-gnu
collect2:ld返回了1个退出状态
make:**[myapp]错误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;
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
int main()
{
返回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位置。
PJBASE=/home/mypc/pjproject-1.4.5
包括$(PJBASE)/build.mak
CC=$(应用程序抄送)
LDFLAGS=$(应用程序\u LDFLAGS)
LDLIBS=$(应用程序_LDLIBS)
CFLAGS=$(应用程序\u CFLAGS)
CPPFLAGS=${CFLAGS}
#如果您的应用程序位于名为myapp.cpp或myapp.c的文件中
#这是构建二进制文件所需的行。
全部:myapp
myapp:myapp.cpp
$(CC)-o$@$<$(CPPFLAGS)$(LDFLAGS)$(LDLIBS)
清洁:
rm-f myapp.o myapp
谢谢
编辑:
我刚刚注意到构建PjSIP时出错
make[2]:进入目录
/home/mypc/pjproject-1.4.5/pjnath/build'
gcc-c-Wall-DPJ_AUTOCONF=1-O2
-Wno未使用的标签-Werror-I../include-I.././pjlib/include-I.././pjlib util/include \-o输出/pjnath-i686-pc-linux-gnu/stun_session.o
\../src/pjnath/stun_session.c cc1:
警告被视为错误
../src/pjnath/stun_session.c:In
函数“应用消息选项”:
../src/pjnath/stun_session.c:230:
错误:建议用括号括起来&&
在| | make[2]之内:***
[output/pjnath-i686-pc-linux-gnu/stun_session.o]
错误1生成[2]:正在离开目录
/home/mypc/pjproject-1.4.5/pjnath/build'
生成[1]:*[pjnath]错误2生成[1]:
离开目录
`/home/mypc/pjproject-1.4.5/pjnath/build'
make::[all]错误1
当我试图在出现在
/home/mypc/pjproject-1.4.5/pjnath/build
的make文件中查找-Werror时,$(PJDIR)/build.mak
和$(PJDIR)/build/common.mak
它不存在,没有人知道它可能在哪里?似乎pj*无法构建必要的库-为了简单的修复,请尝试在/home/mypc/pjproject-1.4.5/build.mak
中找到该行,其中-Werror
被添加到$(APP\u CFLAGS)
(如果添加了其他标志,则为-Werror
,而不是整行:)
或者,在src/pjnath/stun_session.c
中的第230行应用gcc建议的修复程序
编辑:刚刚读到您没有发现任何
-Werror
。您可以将stun\u session.c的第230行或make文件粘贴到某个地方吗?最好是源代码行。是否有
pjsua-i686-pc-linux-gnu。因此/home/mypc/pjproject-1.4.5/pj*
中的一个中是否有/home/mypc/pjproject-1.4.5/pj*/lib/
@gf:没有任何一个$(PJBASE)中都没有/build.mak
build它还是应该已经构建好了?我使用“/configure”、“make dep”和“make”行230:PJ_STUN_is_REQUEST(msg->hdr.type)&&msg->hdr.magic==PJ_STUN_magic”)构建它/home/mypc/pjproject-1.4.5/build.mak-…/home/mypc/pjproject-1.4.5/pjnath/build/Makefile-…/mypc/pjproject-1.4.5/build/common.mak-。。。。src/pjnath/stun_session.c-