首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到arm-none linux-gnueabi-g++编译器的-lpaho-mqtt3c

找不到arm-none linux-gnueabi-g++编译器的-lpaho-mqtt3c
EN

Stack Overflow用户
提问于 2020-04-17 15:44:21
回答 1查看 130关注 0票数 1

我在下面的路径中有arm-none-linux-gnueabi-g++编译器,

代码语言:javascript
运行
复制
root@user-VirtualBox:~# which arm-none-linux-gnueabi-g++
/home/user/octane_etk-6.0.0.240/arm-toolchain/bin/arm-none-linux-gnueabi-g++

我已经在paho的构建命令中给出了相同的DCMAKE_COMPILER路径,

代码语言:javascript
运行
复制
user@user-VirtualBox:~/octane_etk_sample-6.0.0.240/paho.mqtt.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-17T07:33:49Z
-- 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

在我给出了这个构建之后,

代码语言:javascript
运行
复制
$ sudo cmake --build build/ --target install
$ sudo ldconfig

我将libpaho-mqtt3c.so、libpaho-mqtt3c.so.1、libpaho-mqtt3c.so.1.3.1从"/home/user/octane_etk_sample-6.0.0.240/paho.mqtt.c/build/src/“复制到这个"-lltkcpp_atmel”所在的同一文件夹中。

然而,当我给出make it时说,找不到-lpaho-mqtt3c,

代码语言:javascript
运行
复制
root@user-VirtualBox:/home/user/octane_etk_sample-6.0.0.240# make arm
mkdir -p ./bin
arm-none-linux-gnueabi-g++ \
    -Wno-write-strings \
    -Iinclude \
    speedway_embedded_example.cpp -lpaho-mqtt3c \
    -Llib \
    -static -lltkcpp_atmel -lltkcppimpinj_atmel -lxml2_atmel \
    -lssl_atmel -lcrypto_atmel -ldl_atmel \
    -o bin/speedwayr_arm
/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

如何克服这个问题?在构建paho来对抗arm-none-linux-gnueabi-gcc & g++的时候有什么问题吗?

注1: David Ranieri建议的编译器命令

代码语言:javascript
运行
复制
root@user-VirtualBox:/home/mindlogic/octane_etk_sample-6.0.0.240# make arm
mkdir -p ./bin
arm-none-linux-gnueabi-g++ \
    -Wno-write-strings \
    -o bin/speedwayr_arm \
    -Iinclude \
    speedway_embedded_example.cpp -lpaho-mqtt3c \
    -Llib \
    -static -lltkcpp_atmel -lltkcppimpinj_atmel -lxml2_atmel \
    -lssl_atmel -lcrypto_atmel -ldl_atmel
/home/mindlogic/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

注2:

我已经将cmake构建从

代码语言:javascript
运行
复制
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++

代码语言:javascript
运行
复制
 cmake -Bbuild -H. -DPAHO_WITH_SSL=OFF -DPAHO_ENABLE_TESTING=OFF 
-DPAHO_BUILD_STATIC=True -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

在将库构建为静态库之后,现在我可以使用"makr arm“成功地编译,即下面给出的命令

代码语言:javascript
运行
复制
root@user-VirtualBox:/home/user/octane_etk_sample-6.0.0.240# make cap
mkdir -p ./bin
arm-none-linux-gnueabi-g++ \
    -Wno-write-strings \
    -Iinclude \
    speedway_embedded_example.cpp \
    -Llib \
    -static -lltkcpp_atmel -lltkcppimpinj_atmel -lxml2_atmel \
    -lssl_atmel -lcrypto_atmel -ldl_atmel -lpaho-mqtt3c-static -ljansson -lpthread \
    -o bin/speedwayr_arm
EN

回答 1

Stack Overflow用户

发布于 2020-04-17 15:50:11

顺序很重要,请尝试在链接之前生成对象:

代码语言:javascript
运行
复制
arm-none-linux-gnueabi-g++ \
    -Wno-write-strings \
    -o bin/speedwayr_arm \
    -Iinclude \
    speedway_embedded_example.cpp -lpaho-mqtt3c \
    -Llib \
    -static -lltkcpp_atmel -lltkcppimpinj_atmel -lxml2_atmel \
    -lssl_atmel -lcrypto_atmel -ldl_atmel
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61266452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档