【问题标题】:Qt Creator: Getting error "skipping incompatible" when include libraryQt Creator:包含库时出现错误“跳过不兼容”
【发布时间】:2012-01-19 14:30:27
【问题描述】:

我在 Linux KDE 上使用 Qt Creator。我即将在我的 Qt 项目中包含一个库。该库已成功包含,但出现以下错误:

    :-1: error: skipping incompatible /home/administrator/yyyyy/xxxxx/../../../../opt/QtSDK
/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib//libcrypto.so when 
searching for -lcrypto (the following is in red colour) File not found: (which one isn't 
told)

    :-1: error: skipping incompatible /home/administrator/yyyyy/xxxxx/../../../../opt/QtSDK
/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib//libcrypto.a when 
searching for -lcrypto (the following is in red colour) File not found: (which one isn't 
told)

    :-1: error: skipping incompatible /home/administrator/yyyyy/xxxxx/../../../../opt/QtSDK
/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib//libpthread.so when 
searching for -lpthread (the following is in red colour) File not found: (which one isn't 
told)

    :-1: error: skipping incompatible /home/administrator/yyyyy/xxxxx/../../../../opt/QtSDK
/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib//libpthread.a when 
searching for -lpthread File not found: (which one isn't told)

    :-1: error: skipping incompatible /home/administrator/yyyyy/xxxxx/../../../../opt/QtSDK
/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib//libm.so when 
searching for -lm File not found: (which one isn't told)

    :-1: error: skipping incompatible /home/administrator/yyyyy/xxxxx/../../../../opt/QtSDK
/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib//libm.a when searching 
for -lm File not found: (which one isn't told)

    :-1: error: skipping incompatible /home/administrator/yyyyy/xxxxx/../../../../opt/QtSDK
/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib//libc.so when 
searching for -lc File not found: (which one isn't told)

    :-1: error: skipping incompatible /home/administrator/yyyyy/xxxxx/../../../../opt/QtSDK
/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib//libc.a when searching 
for -lc File not found: (which one isn't told)

我使用 Qt Creator 中的“添加库”功能在 .pro 文件中添加了库,并选择了“外部库”。我得到以下代码:

unix:!macx:!symbian: LIBS += -L$$PWD/../../../../opt/QtSDK/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib/ -lcrypto

INCLUDEPATH += $$PWD/../../../../opt/QtSDK/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/include/openssl
DEPENDPATH += $$PWD/../../../../opt/QtSDK/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/include/openssl

unix:!macx:!symbian: PRE_TARGETDEPS += $$PWD/../../../../opt/QtSDK/Madde/sysroots/harmattan-nokia-meego-arm-sysroot-1122-slim/usr/lib/libcrypto.a

实际上我的程序可以工作,但我不明白 Qt 在做什么。看起来 Qt 正在尝试包含具有相似名称的其他库 - 但为什么呢?

【问题讨论】:

    标签: qt


    【解决方案1】:

    您的系统上可能同时具有 x64 和 x86 库,并且在查找过程中会跳过不兼容的库

    【讨论】:

    • 这是可能的。 (另外:我的文件夹中有更多“加密”库 - 具有不同的结尾(.so,...))。我隔离了crypto.a(我需要的那个)。不,我只收到一个错误::-1: 错误:在搜索 -lcrypto 时跳过不兼容的 /home/administrator/yyyyy/xxxxx/../Library//libcrypto.a。不幸的是,这是我需要的库 - 奇怪的是我使用的库(程序有效)。您知道如何了解有关图书馆的更多信息吗?
    • 现在,包含库的文件夹只包含我需要的库(libcrypto.a)。这个库怎么可能是 x64 和 x86 库?
    • 首先您可以通过查看生成的 Makefile 来检查 qt 实际使用的库。在第二个问题上,您可以运行“readelf -h libname.a”。这将向您显示库头及其构建的拱门。
    • 可能问题在于该库是为 ARM 微控制器构建的:readelf -h librcrypto.a 显示(除其他外):“机器:ARM”。在一两周内我可以问 s.o.谁设置了这个库 - 所以你不需要再回答了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多