我有一个使用32位库的cpp项目。当我构建并运行应用程序时,我收到此错误:
dlopen:./ lib.so:错误的ELF类:ELFCLASS32
这就是为什么我试图建立这个项目32位。
这是我的cmakeList.txt:
cmake_minimum_required(VERSION 3.9)
project(app)
set(CMAKE_CXX_STANDARD 11)
add_executable(app main.cpp a.c a.h)
set_target_properties(app PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
find_package(Boost COMPONENTS system filesystem thread REQUIRED)
IF (Boost_FOUND)
include_directories(${Boost_INCLUDE_DIR})
target_link_libraries(app ${Boost_LIBRARIES})
SET(CMAKE_CXX_FLAGS " -pthread")
endif()
target_link_libraries(app ${CMAKE_DL_LIBS})
我收到此错误:
/usr/lib/x86_64-linux-gnu/libboost_system.so:错误添加符号: 文件格式错误
当我删除Boost块并编译时,没问题。当我删除.so文件并在64位上构建时,没问题。但我必须使用这个库并使用libboost。
在这种情况下,正确的cmakeList是什么?