c - 如何解决找不到给定编译器命令的 lapho-mqtt3c 问题?
问题描述
我需要针对 arm-none-linux-gcc 运行 MQTTClient_publish.c,同样我遵循以下命令构建和安装,
$ cmake -Bbuild -H. -DPAHO_WITH_SSL=OFF -DPAHO_ENABLE_TESTING=OFF -DCMAKE_C_COMPILER=/home/user/octane_etk-6.0.0.240/arm-toolchain/bin/arm-none-linux-gnueabi-gcc -DCMAKE_CXX_COMPILER=/home/user/octane_etk-6.0.0.240/arm-toolchain/bin/arm-none-linux-gnueabi-g++
-- The C compiler identification is GNU 4.8.1
-- Check for working C compiler: /home/user/octane_etk-6.0.0.240/arm-toolchain/bin/arm-none-linux-gnueabi-gcc
-- Check for working C compiler: /home/user/octane_etk-6.0.0.240/arm-toolchain/bin/arm-none-linux-gnueabi-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- CMake version: 3.10.2
-- CMake system name: Linux
-- Timestamp is 2020-04-20T06:39:20Z
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
CMAKE_CXX_COMPILER
-- Build files have been written to: /home/user/octane_etk_sample-6.0.0.240/paho.mqtt.c/build
然后我使用它安装了它,所有示例都在 /usr/local/samples 中,头文件在 /usr/local/include 中,库在 /usr/local/bin
$ sudo cmake --build build/ --target install
Scanning dependencies of target common_obj
[ 3%] Building C object src/CMakeFiles/common_obj.dir/MQTTProtocolClient.c.o
[ 7%] Building C object src/CMakeFiles/common_obj.dir/Clients.c.o
[ 10%] Building C object src/CMakeFiles/common_obj.dir/utf-8.c.o
[ 14%] Building C object src/CMakeFiles/common_obj.dir/StackTrace.c.o
[ 17%] Building C object src/CMakeFiles/common_obj.dir/MQTTPacket.c.o
[ 21%] Building C object src/CMakeFiles/common_obj.dir/MQTTPacketOut.c.o
[ 25%] Building C object src/CMakeFiles/common_obj.dir/Messages.c.o
[ 28%] Building C object src/CMakeFiles/common_obj.dir/Tree.c.o
[ 32%] Building C object src/CMakeFiles/common_obj.dir/Socket.c.o
[ 35%] Building C object src/CMakeFiles/common_obj.dir/Log.c.o
[ 39%] Building C object src/CMakeFiles/common_obj.dir/MQTTPersistence.c.o
[ 42%] Building C object src/CMakeFiles/common_obj.dir/Thread.c.o
[ 46%] Building C object src/CMakeFiles/common_obj.dir/MQTTProtocolOut.c.o
[ 50%] Building C object src/CMakeFiles/common_obj.dir/MQTTPersistenceDefault.c.o
[ 53%] Building C object src/CMakeFiles/common_obj.dir/SocketBuffer.c.o
[ 57%] Building C object src/CMakeFiles/common_obj.dir/Heap.c.o
[ 60%] Building C object src/CMakeFiles/common_obj.dir/LinkedList.c.o
[ 64%] Building C object src/CMakeFiles/common_obj.dir/MQTTProperties.c.o
[ 67%] Building C object src/CMakeFiles/common_obj.dir/MQTTReasonCodes.c.o
[ 71%] Building C object src/CMakeFiles/common_obj.dir/Base64.c.o
[ 75%] Building C object src/CMakeFiles/common_obj.dir/SHA1.c.o
[ 78%] Building C object src/CMakeFiles/common_obj.dir/WebSocket.c.o
[ 78%] Built target common_obj
Scanning dependencies of target paho-mqtt3a
[ 82%] Building C object src/CMakeFiles/paho-mqtt3a.dir/MQTTAsync.c.o
[ 85%] Linking C shared library libpaho-mqtt3a.so
[ 85%] Built target paho-mqtt3a
Scanning dependencies of target paho-mqtt3c
[ 89%] Building C object src/CMakeFiles/paho-mqtt3c.dir/MQTTClient.c.o
[ 92%] Linking C shared library libpaho-mqtt3c.so
[ 92%] Built target paho-mqtt3c
Scanning dependencies of target MQTTVersion
[ 96%] Building C object src/CMakeFiles/MQTTVersion.dir/MQTTVersion.c.o
[100%] Linking C executable MQTTVersion
[100%] Built target MQTTVersion
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/samples/MQTTAsync_publish.c
-- Installing: /usr/local/samples/MQTTAsync_subscribe.c
-- Installing: /usr/local/samples/MQTTClient_publish.c
-- Installing: /usr/local/samples/MQTTClient_publish_async.c
-- Installing: /usr/local/samples/MQTTClient_subscribe.c
-- Installing: /usr/local/samples/paho_c_pub.c
-- Installing: /usr/local/samples/paho_c_sub.c
-- Installing: /usr/local/samples/paho_cs_pub.c
-- Installing: /usr/local/samples/paho_cs_sub.c
-- Installing: /usr/local/samples/pubsub_opts.c
-- Installing: /usr/local/./CONTRIBUTING.md
-- Installing: /usr/local/./epl-v10
-- Installing: /usr/local/./edl-v10
-- Installing: /usr/local/./README.md
-- Installing: /usr/local/./notice.html
-- Installing: /usr/local/lib/libpaho-mqtt3c.so.1.3.1
-- Up-to-date: /usr/local/lib/libpaho-mqtt3c.so.1
-- Up-to-date: /usr/local/lib/libpaho-mqtt3c.so
-- Installing: /usr/local/lib/libpaho-mqtt3a.so.1.3.1
-- Up-to-date: /usr/local/lib/libpaho-mqtt3a.so.1
-- Up-to-date: /usr/local/lib/libpaho-mqtt3a.so
-- Installing: /usr/local/bin/MQTTVersion
-- Set runtime path of "/usr/local/bin/MQTTVersion" to ""
-- Installing: /usr/local/include/MQTTAsync.h
-- Installing: /usr/local/include/MQTTClient.h
-- Installing: /usr/local/include/MQTTClientPersistence.h
-- Installing: /usr/local/include/MQTTProperties.h
-- Installing: /usr/local/include/MQTTReasonCodes.h
现在,当我编译文件时
user@user-VirtualBox:~/octane_etk_sample-6.0.0.240/paho.mqtt.c/src/samples$ arm-none-linux-gnueabi-gcc -o pub MQTTClient_publish.c -lpaho-mqtt3c -I/usr/local/include
cc1: warning: include location "/usr/local/include" is unsafe for cross-compilation [-Wpoison-system-directories]
/home/
user/octane_etk-6.0.0.240/arm-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lpaho-mqtt3c
collect2: error: ld returned 1 exit status
如何解决这个问题?我是否错过了将 arm-none-linux-gnueabi-gcc 与 paho mqtt c 链接的任何步骤?
解决方案
推荐阅读
- firebase - 使用事务实时数据库将点从用户移动到另一个用户
- c# - Docker:dotnet ef 数据库更新失败
- c# - 通过强绑定列表填充 VueJS 数据属性
剃刀视图中的 DOM - bytecode - ASM:如何查找 ALOAD 中包含的对象类型
- javascript - 使用 Cordova(ios 和 android)托管网页的最佳配置是什么
- apache-spark - 如何从数据框转换为 RDD 并使用案例类返回
- python - 提取列表中具有特定元素的行
- sql-server - 获取动态数据透视结果到临时表 SQL Server
- git - Git 存储库中的 Git 存储库,用于客户端使用分发文件
- java - 如何改进 Java 泛型通配符签名