Yocto交叉编译库取决于TI-RPC

问题描述

我正在尝试编译自己的库,它依赖于TI-RPC库。我正在使用Yocto Bitbake和Cmake。

在我的cmake文件中,我使用include_directories(${CMAKE_INSTALL_OLDINCLUDEDIR}/tirpc),并且在主机上进行编译没有问题。

但是当我使用Yocto构建系统和Bitbake时,出现以下错误

cc1plus: warning: include location "/usr/include/tirpc" is unsafe for cross-compilation [-Wpoison-system-directories]

Fatal error: rpc/rpc.h: No such file or directory

如何使构建系统为目标系统使用正确的路径?

CMakeLists.txt:

cmake_minimum_required(VERSION 3.0)

include(GNUInstallDirs)
include_directories(${PROJECT_SOURCE_DIR}/gen)

# Locate TI-RPC
include_directories(${CMAKE_INSTALL_OLDINCLUDEDIR}/tirpc)

string(TIMESTAMP lib_version "%Y.%m.%d")
set(prefix ${CMAKE_INSTALL_PREFIX})
set(libdir ${CMAKE_INSTALL_LIBDIR})
set(incdir ${CMAKE_INSTALL_INCLUDEDIR})

# Building library
add_library(
    mylib SHARED
    ...
    files_xyz.c
    ...
)

target_link_libraries(mylib tirpc)

set_target_properties(
    mylib PROPERTIES
    VERSION ${lib_version}
    SOVERSION ${lib_version}
    PUBLIC_HEADER "header_files.h ..."
)

install(
    TARGETS mylib
    LIBRARY DESTINATION ${libdir}
    PUBLIC_HEADER DESTINATION ${incdir}
)

食谱:

DESCRIPTION = "My library"

LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""

SRC_URI = "git://..."

# Modify these as desired
PV = "0.1+git${SRCPV}"
SRCREV = "my-branch"

S = "${workdir}/git"

inherit cmake lib_package pkgconfig

DEPENDS += "pkgconfig-native"

# Specify any options you want to pass to cmake using EXTRA_OECMAKE:
EXTRA_OECMAKE = ""

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)