我正在尝试在 Windows 10 上为 Rad Studio 10.2.3(C++ Builder 64 位)构建 OpenCV 3.2.0 库 我按照以下步骤使用 CMake 3.17.0:
https://github.com/IgorYunusov/OpenCV-RS
问题在于生成的库适用于 32 位应用程序 (.lib)。我需要 C++ Builder 64 位应用程序 (.a) 的库。 所以我首先将编译器更改为BCC64.exe,并在CMAKE GUI界面中添加了以下变量:
CMAKE_CXX_OUTPUT_EXTENSION .o
CMAKE_LINK_LIBRARY_SUFFIX .a
CMAKE_STATIC_LIBRARY_PREFIX a
CMAKE_STATIC_LIBRARY_SUFFIX .a
CMAKE_FIND_LIBRARY_PREFIXES a
CMAKE_FIND_LIBRARY_SUFFIXES .a
但是当我在 Rad Studio 命令行上运行 make install 时,生成的库始终是 .lib 看来对于Windows,CMake总是会生成.lib文件? 那么,如何使用 GUI 配置 CMake,以便生成配置文件来构建 64 位 (.a) 库文件?
我想我找到了解决办法 我在 Windows-Embarcadero.cmake 文件中添加了以下 2 行,该文件已复制到 CMake 3.17 安装目录:
if(CMAKE_BASE_NAME STREQUAL "bcc64")
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
set(CMAKE_OUTPUT_EXTENSION ".o")
endif()
现在我需要测试生成的.a库,看看它们是否真的是64位库!
无需编译源码的替代方案: 从 x64 平台的 .dll 生成导入库:
mkexp.exe -p xxx.a xxx.dll
对于 x86 平台:
implib -a xxx.lib xxx.dll