【发布时间】:2021-07-25 10:13:52
【问题描述】:
我正在尝试在 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,CMake总是会生成.lib文件?不,这是不正确的。它将使用您告诉它使用的工具链生成。输入
cmake ---help并查看生成器部分。您不想使用任何 Visual Studio 生成器或 nmake 生成器。 -
谢谢。但在这种情况下,我没有使用工具链。相反,我将 Borland MakeFiles 与 Clang 本机编译器一起用于 64 位应用程序:BCC64.exe
-
工具链意味着编译器+链接器。
-
在我使用的 GUI 中,有一个名为“指定工具链...”的选项,这与像我一样选择编译器的选项完全不同。这就是我要说的。
-
我明白你的意思了。