本文将带您了解关于visualstudio2019+cmake实现windowslinux跨平台开发环境搭建的新内容,同时我们还将为您解释vs跨平台编译linux的相关知识,另外,我们还将为您提供关于
本文将带您了解关于visual studio 2019 + cmake 实现windows linux跨平台开发环境搭建的新内容,同时我们还将为您解释vs跨平台编译linux的相关知识,另外,我们还将为您提供关于.net-4.0 – windows xp上的visual studio 2013、c – Visual Studio 2013中的Windows XP和Windows Server 2003支持、c – 用于Visual Studio Linux跨平台的CMake Generator、CMake 无法找到 Visual Studio 15 2017 生成器的实例,但在 Visual Studio 16 2019 中工作正常的实用信息。
本文目录一览:- visual studio 2019 + cmake 实现windows linux跨平台开发环境搭建(vs跨平台编译linux)
- .net-4.0 – windows xp上的visual studio 2013
- c – Visual Studio 2013中的Windows XP和Windows Server 2003支持
- c – 用于Visual Studio Linux跨平台的CMake Generator
- CMake 无法找到 Visual Studio 15 2017 生成器的实例,但在 Visual Studio 16 2019 中工作正常
visual studio 2019 + cmake 实现windows linux跨平台开发环境搭建(vs跨平台编译linux)
visual studio 2019开始支持cmake跨平台开发.
以前cmake项目需要先生成vs项目,然后vs直接使用vs项目开发.现在可以直接用vs2019创建或打开cmake项目.
使用visual studio 2019 + cmake开发跨平台程序,可以利用宇宙无敌visual studio,我认为还是很方便的,无论是代码阅读还是调试.特别是对windows程序员入门linux开发,几乎算是无缝衔接.
-
创建项目:
-
打开项目,则选择打开本地文件夹:
-
两个视图,一般情况下使用目标视图,每个目标相当于原来的一个项目.
-
通过管理配置,可以添加编辑配置:
-
通过添加Linux-GCC配置,即可进行linux开发.
-
添加完配置,即可运行程序,进行调试.linux采用远程调试的方式,第一次调试会提示设置远程服务器连接信息:
-
设置完成,便可以一套代码,开发windows和linux程序,通过切换配置,自由的在编译和调试windows程序和linux程序间切换了.
-
其中linux开发的输出控制台窗口会在vs底部的linux控制台窗口显示.
-
开发linux之前,需要一台linux机器用于实际编译,这台机器需要安装一些必要的程序,如果是Debian的系统,可以使用这个两个命令安装openssh远程连接程序,和各种编译需要的程序,ninja可选:
sudo apt install -y openssh-server build-essential gdb rsync make zip
sudo apt-get install g++ gdb make ninja-build rsync zip
.net-4.0 – windows xp上的visual studio 2013
我听说在Windows XP上安装.NET Framework 4.5是不可能的.如果我想在Windows XP上使用Visual Studio 2013 for .NET 4.0?
这可能吗?
对于Windows XP上的.Net 4.0,您可以尝试使用.Net 4.0使用Visual Studio 2010.我不知道这是否可以正常工作,但是建议您使用.Net 4.0和Windows 8 for .Net 4.5.
c – Visual Studio 2013中的Windows XP和Windows Server 2003支持
解决方法
c – 用于Visual Studio Linux跨平台的CMake Generator
Visual Studio 2017跨平台工作负载运行良好,特别是在调试方面.我用它来定位WSL.
现在我有一个现有的Linux CMake项目,我想在Windows和Visual Studio上开发并在WSL上构建它.我似乎没有看到为Visual Studio生成适当的解决方案的方法.任何人都可以开导我吗?
解决方法
在这些情况下,您只能使用include_external_msproject()
命令调用.
这将包括现有的.vcproj文件到您的CMake生成的解决方案,如:
include_external_msproject( MyProject ${CMAKE_CURRENT_SOURCE_DIR}/MyProject/MyProject.vcproj )
那么让我们制作一个现有Linux .vcxproj文件的模板,如下所示:
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" Toolsversion="@CMAKE_MATCH_1@.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> <ProjectConfiguration Include="Debug|x86"> <Configuration>Debug</Configuration> <Platform>x86</Platform> </ProjectConfiguration> <ProjectConfiguration Include="Release|x86"> <Configuration>Release</Configuration> <Platform>x86</Platform> </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>@_guid@</ProjectGuid> <Keyword>Linux</Keyword> <RootNamespace>@_target@</RootNamespace> <MinimumVisualStudioVersion>@CMAKE_MATCH_1@.0</MinimumVisualStudioVersion> <ApplicationType>Linux</ApplicationType> <ApplicationTypeRevision>1.0</ApplicationTypeRevision> <TargetLinuxPlatform>Generic</TargetLinuxPlatform> <LinuxProjectType>{D51BCBC9-82E9-4017-911E-C93873C4EA2B}</LinuxProjectType> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'" Label="Configuration"> <UseDebugLibraries>true</UseDebugLibraries> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'" Label="Configuration"> <UseDebugLibraries>false</UseDebugLibraries> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings" /> <ImportGroup Label="Shared" /> <ImportGroup Label="propertysheets" /> <PropertyGroup Label="UserMacros" /> <ItemGroup> <ClCompile Include="@_sources@" /> </ItemGroup> <ItemGroup> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets" /> </Project>
并使用以下命令创建一个新的add_linux_executable()命令:
cmake_minimum_required(VERSION 2.8) project(ConfigurevcxprojForLinux) function(add_linux_executable _target) if (CMAKE_GENERATOR MATCHES "Visual Studio ([0-9]*)") foreach(_source IN LISTS ARGN) get_filename_component(_source_abs "${_source}" ABSOLUTE) file(TO_NATIVE_PATH "${_source_abs}" _source_native) list(APPEND _sources "${_source_native}") endforeach() file(TO_NATIVE_PATH "${CMAKE_CURRENT_LIST_FILE}" _list_file_native) list(APPEND _sources "${_list_file_native}") string( UUID _guid NAMESPACE "2e4779e9-c831-47b0-b138-3745b2ed6ba9" NAME ${_target} TYPE SHA1 UPPER ) configure_file( "LinuxTemplate.vcxproj.in" "${CMAKE_CURRENT_BINARY_DIR}/${_target}.vcxproj" @ONLY ) include_external_msproject( ${_target} "${CMAKE_CURRENT_BINARY_DIR}/${_target}.vcxproj" TYPE "8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942" GUID "${_guid}" ) endif() endfunction() file(WRITE "main.cpp" [=[ #include <iostream> int main() { std::cout << "Hello Linux !" << std::endl; } ]=]) add_linux_executable(${PROJECT_NAME} "main.cpp")
请注意模板替换:
> @ CMAKE_MATCH_1 @获取Visual Studio版本号
> @ _target @用于项目RootNamespace
> @ _sources @为源文件你已经将“add_linux_executable()`作为参数
> @ _guid @项目的唯一GUID
对于您选择的任何编译选项,这仍然需要一个模板.但使用模板使这种方法更灵活.
CMake 无法找到 Visual Studio 15 2017 生成器的实例,但在 Visual Studio 16 2019 中工作正常
如果您想生成面向 Visual Studio 2017 平台工具集 (v141),但使用 Visual Studio 2019 作为生成器,您可以使用以下 CMake 生成命令
cmake -G "Visual Studio 16 2019" -T v141 ..
,
我认为这是一个不幸的命名案例。安装“VS 2017 C++ x64/x86 构建工具”只会安装编译器、链接器和标准库,而不是包括 MSBuild 在内的整个“Visual Studio Build Tools 2017”。但是您需要后者才能使用“Visual Studio 15 2017”生成器。您可以在 https://aka.ms/vs/15/release/vs_buildtools.exe
找到 2017 构建工具的安装程序关于visual studio 2019 + cmake 实现windows linux跨平台开发环境搭建和vs跨平台编译linux的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于.net-4.0 – windows xp上的visual studio 2013、c – Visual Studio 2013中的Windows XP和Windows Server 2003支持、c – 用于Visual Studio Linux跨平台的CMake Generator、CMake 无法找到 Visual Studio 15 2017 生成器的实例,但在 Visual Studio 16 2019 中工作正常的相关知识,请在本站寻找。
本文标签: