首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Conan CMake与Embarcadero集成

Conan CMake与Embarcadero集成
EN

Stack Overflow用户
提问于 2018-05-25 13:21:24
回答 2查看 505关注 0票数 1

我试图使Conan与CMake一起运行,Embarcadero东京10.2.3编译器。我可以按照它的教程使用Embarcadero完成CMake。但柯南的问题似乎发生了。所以我做conan install。然后我做cmake .. -DCMAKE_CXX_COMPILER="bcc32c.exe" -DCMAKE_C_COMPILER="bcc32c.exe" -DCMAKE_VERBOSE_MAKEFILE=1 -G Ninja。我知道错误了

不正确的“Visual”。工具集指定编译器为“MSVC”,但CMake检测到“Embarcadero”

默认的conan显示compiler=Visual Studio,我认为这是问题的来源。但不知道如何将其更改为Embarcadero (不认识),也不知道更改默认配置文件是否可行。我的CMakeLists.txt文件看起来如下(大部分是默认的)

代码语言:javascript
复制
project(Timer)
cmake_minimum_required(VERSION 3.11)

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

add_executable(timer timer.cpp)
target_link_libraries(timer ${CONAN_LIBS})

完整的cmake输出如下:

代码语言:javascript
复制
-- The C compiler identification is Embarcadero 7.30.36015
-- The CXX compiler identification is Embarcadero 7.30.36015
-- Check for working C compiler: C:/Program Files (x86)/Embarcadero/Studio/19.0/bin/bcc32c.exe
-- Check for working C compiler: C:/Program Files (x86)/Embarcadero/Studio/19.0/bin/bcc32c.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Embarcadero/Studio/19.0/bin/bcc32c.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Embarcadero/Studio/19.0/bin/bcc32c.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Current conanbuildinfo.cmake directory: C:/Mathew Joy/Source/mytimer/build
CMake Error at build/conanbuildinfo.cmake:579 (message):
  **Incorrect 'Visual Studio'.  Toolset specifies compiler as 'MSVC' but CMake
  detected 'Embarcadero'**
Call Stack (most recent call first):
  build/conanbuildinfo.cmake:237 (conan_check_compiler)
  CMakeLists.txt:5 (conan_basic_setup)
EN

回答 2

Stack Overflow用户

发布于 2018-05-25 15:20:14

您需要自定义默认的settings.yml文件,该文件可以在<userhome>/.conan/settings.yml中找到

该文件定义了一些最流行的编译器,您可以添加如下内容:

代码语言:javascript
复制
compiler:
    sun-cc:
        ...
    gcc:
        version: ["4.1", "4.4", "4.5", "4.6", "4.7", "4.8", "4.9",

    Visual Studio:
        runtime: [MD, MT, MTd, MDd]
        version: ["8", "9", "10", "11", "12", "14", "15"]
        ...
    Embarcadero:
        version: ["V1", "V2"...]

该文件可以与团队共享和同步,并使用conan config install命令在CI机器中使用。

然后,为了方便起见,可以将这些值添加到默认配置文件中,而不是添加Visual Studio值。

很可能,内置构建帮助程序(如CMake )所提供的大部分逻辑对于这个编译器来说都是有限的,因为它不认识它。如果是这样的话,可以运行您的逻辑直接调用构建系统:

代码语言:javascript
复制
def build(self):
    self.run("cmake . -G ....")
    self.run("cmake --build . --config Release")

如果您想要为不同的配置正确地构建和创建包,那么您应该根据需要使用这些设置和选项来参数化上面的内容。

所有这些都假设您将创建并依赖于您自己的包,因为公共conan中心存储库中的现有包将用于流行的编译器,因此二进制文件将是不兼容的,并且这些菜谱很可能不会实现从Embarcadero的源代码构建。

票数 1
EN

Stack Overflow用户

发布于 2020-05-28 17:27:46

VisualStudio2019 C++比Embarcadero好得多。我用过东京版和里约版,没有可比性。此外,您还可以下载托管C++,称为C++ CLR (而不是CLI),它将允许您将.NET窗体/控制台与本地C++应用程序集成。

VisualStudio2019 C++在创建Xamarin库时工作良好,可以轻松地与C#集成用于Xamarin窗体。Xamarin Forms适用于Android和IOS (Xamarin)。

在2019年7月,Embarcadero最终增加了64位Mac操作系统,而MAC自2008年以来已经增加了64位。

这应该能告诉你一些事情。

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

https://stackoverflow.com/questions/50530211

复制
相关文章

相似问题

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