首页 > 解决方案 > paho mqtt C) make -> 未定义的引用

问题描述

我想用 aws IoT Core 连接到 ARM Board 它正在被交叉编译。因此,通过库路径运行 make 时会出现链接错误,例如 openssl(交叉编译)。

显示以下错误:

[ 51%] Linking C executable paho_c_pub
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'SSLeay_version'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'CRYPTO_THREADID_set_numeric'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'ERR_get_error'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'ERR_print_errors_cb'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'ERR_load_crypto_strings'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'OPENSSL_add_all_algorithms_noconf'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'CRYPTO_num_locks'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'CRYPTO_THREADID_set_callback'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'CRYPTO_set_locking_callback'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'ERR_free_strings'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'EVP_cleanup'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'ERR_clear_error'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_f_base64'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_new'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_s_mem'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_push'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_set_flags'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_write'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_ctrl'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_read'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'BIO_free_all'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'RAND_bytes'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'SHA1_Init'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'SHA1_Update'
../libpaho-mqtt3as.so.1.3.8: error: undefined reference to 'SHA1_Final'
collect2: error: ld returned 1 exit status

我想知道 openssl 库是否没有链接。我尝试设置 export LD_Library_PATH 并在 make 命令后添加 -lssl、-lcrypt 等,但仍然出现相同的错误。

openssl 版本是 1.0.2h 版本。

如何完成编译?

标签: amazon-web-servicesmqtt

解决方案


推荐阅读