首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Centos7上构建32位库

无法在Centos7上构建32位库
EN

Stack Overflow用户
提问于 2019-05-16 19:42:20
回答 1查看 309关注 0票数 0

我有一个叫“devtoolset-7”的Centos7变量盒。

我使用'CMake‘来构建和编译库。这是CMakeLists.txt文件

代码语言:javascript
复制
set(CMAKE_BUILD_TYPE Release)
include_directories("../Include" "/usr/include/libusb-1.0")
add_library(CXIOInterface SHARED 
        CXIOInterface.cpp
        HidInterface_Linux.cpp
        HidDevice_Linux.cpp
        ../Include/Debug.cpp
        app.cpp
        CrcLibrary.cpp
        ContextFunctions.cpp)
set(PROJECT_LINK_LIBS -ludev -lusb-1.0)
target_link_libraries(CXIOInterface LINK_PUBLIC ${PROJECT_LINK_LIBS})
set(CMAKE_CXX_FLAGS "-m32")

当我为64位编译它时,一切都运行得很好。但是当我为32位编译它时,我得到的错误是:

代码语言:javascript
复制
/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: skipping incompatible /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/libstdc++_nonshared.a when searching for -lstdc++_nonshared
/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: cannot find -lstdc++_nonshared
collect2: error: ld returned 1 exit status
make[2]: *** [CXIOInterface/libCXIOInterface.so] Error 1 

你们能帮帮我吗,我不知道该怎么做。

已经有一个链接告诉我安装rpm,但我是ubuntu用户,而不是Centos用户。第一次使用它。

https://www.centos.org/forums/viewtopic.php?t=64011

EN

回答 1

Stack Overflow用户

发布于 2019-05-17 05:10:09

搜索/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld:时跳过不兼容的/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/libstdc++_nonshared.a的

-lstdc++_nonshared

意味着链接器找到的库与ABI不兼容,在这种情况下,它与32位不兼容。

发生这种情况的原因是,您缺少了此操作所需的包,就像您添加的链接状态一样。

首先,找出您安装的devtoolset的当前版本:

代码语言:javascript
复制
rpm -qa | grep devtoolset-7

从输出中,您应该能够很容易地确定您现在使用的是哪个版本。

然后,尝试运行:

代码语言:javascript
复制
yum install devtoolset-7-libstdc++-devel-7.2.1-1.el7.x86_64.rpm

注释:我使用7.2.1-1,因为这是我在谷歌中搜索时发现的版本,如果你安装了不同的版本,请使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56167775

复制
相关文章

相似问题

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