내 프로젝트를 크로스 컴파일하여 나무 딸기 파이에서 사용할 수 있지만 dbus를 찾을 수 없습니다. 내가 고전적으로 편집 할 때 쉽게 발견 할 수있었습니다. cmake를 사용하고 있습니다. 대상 링크 라이브러리에 dbus-1을 추가했는데 arm-linux-gnueabihf를 사용하여 교차 컴파일했습니다.dbus/dbus.h 팔을 구축 할 때 해당 파일이나 디렉토리가 없습니다.
아이디어가 있으십니까?
편집 :
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
FIND_PACKAGE(glib2) # bluetooth
include_directories(${GLIB2_INCLUDE_DIRS}) # bluetooth
include_directories(${CMAKE_SOURCE_DIR}/../bluez/gdbus)
include_directories(${CMAKE_SOURCE_DIR}/../bluez/attrib)
include_directories(${CMAKE_SOURCE_DIR}/../bluez/src)
include_directories(${CMAKE_SOURCE_DIR}/../bluez/src/shared)
include_directories(${CMAKE_SOURCE_DIR}/../bluez/btio)
include_directories(${CMAKE_SOURCE_DIR}/../bluez/lib)
include_directories(${CMAKE_SOURCE_DIR}/../bluez/client)
include_directories(${CMAKE_SOURCE_DIR}/../bluez/emulator)
include_directories(${CMAKE_SOURCE_DIR}/../bluez/monitor)
include_directories(${CMAKE_SOURCE_DIR}/../bluez)
include_directories(/usr/include/dbus)
set(CMAKE_CXX_FLAGS "-fpermissive")
# Search every source files
aux_source_directory(. SRC_LIST)
include_directories (/usr)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/gdbus SRC_BLUEZ_GDBUS)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/client SRC_BLUEZ_CLIENT)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/btio SRC_BLUEZ_BTIO_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/attrib SRC_BLUEZ_ATTRIB_LIST)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/emulator SRC_BLUEZ_EMULATOR)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/lib SRC_BLUEZ_LIB)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/monitor SRC_BLUEZ_MONITOR)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/src SRC_BLUEZ_SRC)
aux_source_directory(${CMAKE_SOURCE_DIR}/../bluez/src/shared SRC_BLUEZ_SRC_SHARED)
add_executable(${PROJECT_NAME} ${SRC_LIST})
# Library used in test
add_library(${PROJECT_NAME}-lib
Thread.cpp
NetworkThread.cpp
UdpSocket.cpp)
add_library(MyBluezLib-lib
${SRC_BLUEZ_SRC} ${SRC_BLUEZ_LIB}
${SRC_BLUEZ_GDBUS} ${SRC_BLUEZ_CLIENT} ${SRC_BLUEZ_BTIO_LIST} ${SRC_BLUEZ_ATTRIB_LIST} ${SRC_BLUEZ_EMULATOR}
${SRC_BLUEZ_SRC_SHARED} ${SRC_BLUEZ_MONITOR})
# Link libraries
TARGET_LINK_LIBRARIES (${PROJECT_NAME}
pthread
glog
bluetooth
${GLIB2_LIBRARIES} #bluetooth
readline
expat
dbus-1
dl
MyBluezLib-lib
)
을 그리고 이것은 내 호출을 확인하고 자신의 answear입니다 : 내 CMakeLists.txt를 추가
Scanning dependencies of target MyBluezLib-lib
[ 1%] Building C object src/CMakeFiles/MyBluezLib-lib.dir/home/grosalex/job/stageING3/bluez/src/rfkill.c.obj
In file included from /home/grosalex/job/stageING3/bluez/src/rfkill.c:39:0:
/home/grosalex/job/stageING3/bluez/src/adapter.h:29:23: erreur fatale: dbus/dbus.h: Aucun fichier ou dossier de ce type
#include <dbus/dbus.h>
^
컴파일 terminée.
안녕하세요, 프로젝트 구조를 추가하여 게시물을 편집 할 수 있습니다 그리고 컴파일 커맨드 라인을 부탁합니다. – Martin
더 구체적이고 명확한 질문을하십시오 : http://stackoverflow.com/help/how-to-ask – askmish
RPi에 내장 된 Linux 배포판은 무엇입니까? [Buildroot] (http://buildroot.uclibc.org/)도 살펴볼 수 있습니다. 그것은 당신의 크로스 컴파일 작업을 쉽게 할 수 있습니다. – yegorich