C++ C++;生成器64位

C++ C++;生成器64位,c++,opencv,cmake,C++,Opencv,Cmake,我正在尝试在Windows 10上为Rad Studio 10.2.3(C++Builder 64位)构建OpenCV 3.2.0库 我按照以下步骤使用CMake 3.17.0: 问题是生成的库是为32位应用程序(.lib)生成的。我需要一个C++的Builder 64位应用程序(.a)的库。 因此,我首先将编译器更改为BCC64.exe,并在CMAKE GUI界面中添加了以下变量: CMAKE_CXX_OUTPUT_EXTENSION .o CMAKE_LINK_LIBRARY_SUFF

我正在尝试在Windows 10上为Rad Studio 10.2.3(C++Builder 64位)构建OpenCV 3.2.0库 我按照以下步骤使用CMake 3.17.0:

问题是生成的库是为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
但是当我在radstudio命令行上运行makeinstall时,生成的库总是.lib 对于Windows,CMake似乎总是生成.lib文件? 那么,如何使用GUI配置CMake,以便它生成配置文件来构建64位(.a)库文件?

我想我找到了一个解决方案 我在复制到cmake 3.17安装目录的Windows-Embarcadero.cmake文件中添加了以下两行:

if(CMAKE_BASE_NAME STREQUAL "bcc64")
  set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
  set(CMAKE_OUTPUT_EXTENSION ".o")
endif()

现在我需要测试生成的.a库,看看它们是否真的是64位库

对于Windows,CMake似乎总是生成.lib文件?不,这是错误的。它将使用您告诉它使用的工具链生成。键入
cmake--help
并查看生成器部分。您不想使用任何Visual Studio生成器或nmake生成器。谢谢。但在这种情况下,我没有使用工具链。相反,我在64位应用程序中使用Borland MakeFiles和Clang native compiler:BCC64.exe工具链意味着编译器+链接器。在我使用的GUI中,有一个名为“指定工具链…”的选项,它与我选择编译器的选项完全不同。这就是我要说的。我明白你的意思。