我是yocto和bitbake的新手,我正在为自定义imx6板构建VoIP应用程序。我想使用 pjsip 库来构建我的应用程序,我已经在我的 yocto 构建中编译了 pjsip 并生成了 pjsip 库(所有 pjsip 库都是静态的(。我在为调用 pjsip 函数的应用程序构建配方时遇到问题。以下是我的食谱外观
文件名: rttapp.bb
DESCRIPTION = "Simple voip application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM ="file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r1"
SRC_URI += "file://rttapp.c"
SRC_URI += "file://include"
SRC_URI += "file://lib"
S = "${WORKDIR}"
CFLAGS_prepend += "-I${WORKDIR}/include -DPJ_AUTOCONF=1 -DPJ_IS_BIG_ENDIAN=0 ->DPJ_IS_LITTLE_ENDIAN=1"
LDFLAGS_append += "-L${WORKDIR}/lib -lpjsua2-arm-poky-linux-gnueabi -lstdc++ ->lpjsua-arm-poky-linux-gnueabi -lm -lrt -lpthread -lasound"
do_compile() {
${CC} ${CFLAGS} ${LDFLAGS} rttapp.c -o rttapp
}
当我做bitbake rttapp时,我看到的错误如下:
/usr/src/debug/rttapp/1.0-r1/rttapp.c:159: undefined reference to pjsua_create'. collect2: error: ld returned 1 exit status
请告知
想通了问题,这实际上是一个愚蠢的错误
${CC} ${CFLAGS} ${LDFLAGS} rttapp.c -o rttapp
应该是
${CC} rttapp.c ${CFLAGS} ${LDFLAGS} -o rttapp
由于您的配方取决于pjsip
,因此您需要具有明确的依赖项。只需添加
DEPENDS += 'pjsip'
到你的食谱。
截至Pyro
版本,未使用全局系统根。相反,所有配方都必须显式添加自己的所有依赖项。