在PC上编译c++程序与DJI phantom 4 pro通讯
Posted
技术标签:
【中文标题】在PC上编译c++程序与DJI phantom 4 pro通讯【英文标题】:Compile a c++ program on PC to communicate with DJI phantom 4 pro 【发布时间】:2017-12-06 14:43:06 【问题描述】:我正在尝试在我的 PC(linux mint)上接收来自使用 OpenCV 的 DJI phantom 4 摄像头的流。 我关注的示例是:https://developer.dji.com/guidance-sdk/documentation/tutorials/index.html(我关注的是 linux 部分) 我在 /usr/local/lib 中复制了 Copy libDJI_guidance.so 并检查了一下,它就在那里。 生成文件是:
#define a compiler
CXX = g++
#define target name
TARGET = main
#define dependencies of target
OBJECTS = main.o DJI_utility.o
#define the Include and Library path
CFLAGS = -g -Wall -I/usr/local/include -I../../../include
LDFLAGS = -Wl,-rpath,./ -lpthread -lrt -L./ -L/usr/local/lib/ -lDJI_guidance -lusb-1.0 `pkg-config --cflags --libs opencv`
$(TARGET) : $(OBJECTS)
$(CXX) -o $(TARGET) $(OBJECTS) $(LDFLAGS)
main.o : main.cpp DJI_utility.h
$(CXX) $(CFLAGS) -c main.cpp DJI_utility.h
DJI_utility.o : DJI_utility.cpp DJI_utility.h
$(CXX) $(CFLAGS) -c DJI_utility.cpp DJI_utility.h
clean:
rm -rf *.o *.gch *.avi $(TARGET)
但是当我在命令行中执行 make 时,我得到:
g++ -o main main.o DJI_utility.o -Wl,-rpath,./ -lpthread -lrt -L./ -L/usr/local/lib/ -lDJI_guidance -lusb-1.0 `pkg-config --cflags --libs opencv`
/usr/bin/ld: skipping incompatible /usr/local/lib//libDJI_guidance.so when searching for -lDJI_guidance
/usr/bin/ld: skipping incompatible /usr/local/lib/libDJI_guidance.so when searching for -lDJI_guidance
/usr/bin/ld: skipping incompatible //usr/local/lib/libDJI_guidance.so when searching for -lDJI_guidance
/usr/bin/ld: cannot find -lDJI_guidance
/usr/bin/ld: cannot find -lusb-1.0
collect2: error: ld returned 1 exit status
Makefile:12: recipe for target 'main' failed
make: *** [main] Error 1
项目位于:
~/Documents/studies_SRT/SRT5/TX_drone/Guidance-SDK/demo/guidance_track
ls 的输出是: DJI_guidance.h DJI_utility.cpp DJI_utility.h DJI_utility.h.gch DJI_utility.o main.cpp main.o Makefile
谢谢。
【问题讨论】:
这听起来有点像您为错误的架构下载了库。也许是 32 位与 64 位的问题? 感谢您的回复,是的,这是我检查的库的问题,我使用的是 32 位 .. 不是 64 位。但是我想知道您是如何找到的? 好的,这是一个实际的答案。错误信息似乎很熟悉。我想在某些时候我犯了同样的错误,但不是 100% 确定。 好的,非常感谢 【参考方案1】:您似乎下载了错误架构的库文件。如果您使用的是 64 位系统,请下载 64 位版本的库。
【讨论】:
以上是关于在PC上编译c++程序与DJI phantom 4 pro通讯的主要内容,如果未能解决你的问题,请参考以下文章
在 Linux 服务器上编译 C++ 程序时 Intel 编译器的语法