【问题标题】:How to transform from CMake to a plain Visual Studio project?如何从 CMake 转换为普通的 Visual Studio 项目?
【发布时间】:2021-06-25 17:52:49
【问题描述】:

我能够 CMake 使用 cmakelists.txt 文件构建这个 HelloWorld example project 并生成一个 Visual Studio 项目。

project(helloworld LANGUAGES C CXX)
cmake_minimum_required(VERSION 3.5)

find_package(Idlpp-cxx REQUIRED)
if (NOT TARGET CycloneDDS-CXX::ddscxx)
  find_package(CycloneDDS-CXX REQUIRED)
endif()

# Convenience function, provided by the Idlpp-cxx that generates a CMake
# target for the given IDL file. The function calls Idlcpp-cxx to generate
# source files and compiles them into a library.
idl_ddscxx_generate(ddscxxHelloWorldData_lib "HelloWorldData.idl")

add_executable(ddscxxHelloworldPublisher publisher.cpp)
add_executable(ddscxxHelloworldSubscriber subscriber.cpp)

# Link both executables to idl data type library and ddscxx.
target_link_libraries(ddscxxHelloworldPublisher ddscxxHelloWorldData_lib     CycloneDDS-CXX::ddscxx)
target_link_libraries(ddscxxHelloworldSubscriber ddscxxHelloWorldData_lib CycloneDDS-CXX::ddscxx)

set_property(TARGET ddscxxHelloworldPublisher PROPERTY CXX_STANDARD 11)
set_property(TARGET ddscxxHelloworldSubscriber PROPERTY CXX_STANDARD 11)

我需要在没有 cmakelists.txt 和 CMake 的情况下创建相同的项目

如何仅使用 Visual Studio 执行此操作? 在 Visual Studio 的 CMakelists.txt 中定义这些命令的位置如果我创建一个空的 c++ 项目

我已经尝试过这个制作一个空项目。

我不知道 idl_ddscxx_generate 和 target_link_libraries 如何在 VS 中执行......

idl_ddscxx_generate 如果 IDL 文件已更改,则必须运行 如果我将新的源文件添加到项目中,则需要 target_link_libraries....

【问题讨论】:

  • 您尝试过创建项目吗?你在哪里卡住了?如果您已经使用 cmake,为什么不想使用它?
  • @Alan Birtles 如果我必须包含新的源文件,我必须将它们添加到 CMakelists。这是我在生产环境中无法做到的......
  • @Alan Birtles docs.microsoft.com/en-us/cpp/build/… ......我跟着这个,做了同样的事情,并将额外的 c++ 依赖项和链接器输入设置到空的 c++ VS 项目中......根据属性在我使用上面的 cmakelists.txt 文件创建的项目中
  • 如果您使用的是 Visual Studio 项目,您还需要将新的源文件添加到这些项目中,我看不出有什么区别
  • @Alan Birtles 是的,但在这里我必须修改 cmakelist 和 CMake 构建......我需要避免这种情况

标签: visual-studio cmake


【解决方案1】:
  1. 新建一个空的 Visual Studio 项目。
  2. 复制除 CMake 文件之外的所有源文件。
  3. 在 Visual Studio 项目中执行任何操作。添加文件、目标、依赖项……如果不确定,请查看 CMakeLists.txt 文件中的内容。
  4. 删除原始项目中的所有 CMake 文件并复制 Visual Studio 项目文件。
  5. 将这些更改(删除的 CMake 文件、添加的 VS 项目文件)添加到您的 Subversion 存储库中,也许在其他人可以测试、报告和改进更改的分支中执行此操作。完成后,合并分支。

可能,添加步骤 0。:了解 Visual Studio 如何组织其项目。制作教程,进行一些培训。

备注:无论您使用 CMake 遇到什么问题,您都漏掉了一些东西。但是您可以稍后找到它并恢复您的更改并再次使用 CMake。

【讨论】:

  • 你能解释一下如何将 idl_ddscxx_generate 包含到普通的 VS 项目中吗?我应该在哪里添加它?
  • 我怀疑如果没有像 CMake 这样的适当构建系统,是否有可能做到这一点。
猜你喜欢
  • 2010-10-18
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
相关资源
最近更新 更多