当前位置: 首页 > news >正文

燕郊网站制作多少钱百度推广方案

燕郊网站制作多少钱,百度推广方案,wordpress 模板 门户,闵行网站建设哪家好目录 一、问题背景 二、问题分析 三、问题解决 一、问题背景 VS2022中能够跨平台的工程类型就是CMake项目,一套代码能跨windows/Linux/Mac多种操作系统。而实际使用时,发现相关资料比较少,需要摸索一下。 碰到的问题简述: 1、C…

目录

一、问题背景

二、问题分析

三、问题解决


一、问题背景

       VS2022中能够跨平台的工程类型就是CMake项目,一套代码能跨windows/Linux/Mac多种操作系统。而实际使用时,发现相关资料比较少,需要摸索一下。

 碰到的问题简述:

 

1、C++ Intellisense信息可能过时,生成要刷新的CMake缓存。

2、多次定义了变量 CMAKE_INSTALL_PREFIX

3、CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.  4、CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage    

5、CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage         

 二、问题分析

CMake工程中最重要的文件就是CMakeLists文件,其包含工程所有需要的元素,例如下面这个demo。直接用CMakeLists会觉得难用;但用了makefile再用这个就觉得CMakeLists十分友好了。

# CMakeList.txt: CMakeProject1 的 CMake 项目,在此处包括源代码并定义
# 项目特定的逻辑。
#
cmake_minimum_required (VERSION 3.8)# 如果支持,请为 MSVC 编译器启用热重载。
if (POLICY CMP0141)cmake_policy(SET CMP0141 NEW)set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()project ("CMakeProject1")# 将源代码添加到此项目的可执行文件。
add_executable (CMakeProject1 "CMakeProject1.cpp" "CMakeProject1.h")if (CMAKE_VERSION VERSION_GREATER 3.12)set_property(TARGET CMakeProject1 PROPERTY CXX_STANDARD 20)
endif()# TODO: 如有需要,请添加测试并安装目标。

如果上面的demo看不懂,建议先恶补一下,不然下面的内容会比较吃力。

VS创建CMake工程时,默认会创建一个CMakePresets.json文件。

 例如本地计算机的x64-Debug工程属性由下面的json片段来描述。这个片段把CMake要用的c/c++编译器进行了定义(cl.exe)。

       {"name": "windows-base","hidden": true,"generator": "Ninja","binaryDir": "${sourceDir}/out/build/${presetName}","installDir": "${sourceDir}/out/install/${presetName}","cacheVariables": {"CMAKE_C_COMPILER": "cl.exe","CMAKE_CXX_COMPILER": "cl.exe"},"condition": {"type": "equals","lhs": "${hostSystemName}","rhs": "Windows"}},{"name": "x64-debug","displayName": "x64 Debug","inherits": "windows-base","architecture": {"value": "x64","strategy": "external"},"cacheVariables": {"CMAKE_BUILD_TYPE": "Debug"}}

然而,这个json文件对于linux和mac的描述则不完整,以下为linux-debug工程属性,其中对c/c++编译器没有定义。

{"name": "linux-debug","displayName": "Linux Debug","generator": "Ninja","binaryDir": "${sourceDir}/out/build/${presetName}","installDir": "${sourceDir}/out/install/${presetName}","cacheVariables": {"CMAKE_BUILD_TYPE": "Debug"},"condition": {"type": "equals","lhs": "${hostSystemName}","rhs": "Linux"},"vendor": {"microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {"sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"}}
}

这就是把本地计算机工程改为远程Linux工程时,vs报错的原因了。猜想vs的开发工程师在做这个功能时,只针对本地window环境编写了完整的CMakePresets.json,而针对其他平台只写了一段参考,其实现并不完整,需要用户手动配置缺失部分。例如,配置Linux系统中CMake用到的c/c++编译器,Ninjia路径等。可以参考一下官方的文档

使用 CMake 预设进行配置和生成 | Microsoft Learn

三、问题解决

有了第二部分的分析,解决问题的思路就有了,把相关的配置补充完整。

首先,补充c/c++编译器,linux机器上已经装了gcc/g++,直接填好就可以了。

(如果没有安装需要在linux安装一下 apt install gcc g++)

        {"name": "linux-debug","displayName": "Linux Debug","generator": "Ninja","binaryDir": "${sourceDir}/out/build/${presetName}","installDir": "${sourceDir}/out/install/${presetName}","cacheVariables": {"CMAKE_BUILD_TYPE": "Debug","CMAKE_C_COMPILER": "gcc","CMAKE_CXX_COMPILER": "g++"}

改了以后,这两个报错没有了。

4、CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage    

5、CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage  

 上面的错误显示查询ninja版本号时失败了。装一个ninja:

sudo apt install ninja-build

安装完成后,回到vs中,按ctrl+S,保存工程时,会自动再次构建工程,发现构建成功。

最后,虽然构建成功了,实际上有个错误最后还是没有解决,即使它不影响工程的构建结果。

多次定义了变量 CMAKE_INSTALL_PREFIX

从构建日志看出,CMAKE_INSTALL_PREFIX,确实定义了两次。感觉这就是vs的一个bug,有博友知道如何解决,请评论告知,十分感谢。

/usr/bin/cmake -G "Ninja"   -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_C_COMPILER:STRING="gcc" -DCMAKE_CXX_COMPILER:STRING="g++" -DCMAKE_INSTALL_PREFIX:PATH="/root/.vs/CMakeProject1/out/install/linux-debug"   -DCMAKE_INSTALL_PREFIX:PATH="/root/.vs/CMakeProject1/out/install/linux-debug"  /root/.vs/CMakeProject1/CMakeLists.txt

 

http://www.ds6.com.cn/news/6727.html

相关文章:

  • 广东手机网站制作价格国内最新新闻热点事件
  • 营销型企业网站核心希爱力
  • 杭州旅游 网站建设怎么推广自己的网站
  • 威客网站模版2023最新15件重大新闻
  • 用DW做网站时怎么在新窗口打开百度一下网页入口
  • 嵌入式软件开发平台有哪些seo做的比较好的公司
  • 找图片素材网站seo技术最新黑帽
  • 常州微信网站建设seo优化一般多少钱
  • 小说网站开发设计最稳定的灰色词排名
  • 本地的上海网站建设互联网营销策划方案
  • 做网站怎么插入字幕互联网公司
  • 网站源码商城建设深圳网站建设
  • 网站要和别人做api 链接流量推广怎么做
  • 营销型企业网站建设的基本原则是武汉网站优化
  • 濮阳市网站建设如何在互联网推广自己的产品
  • 企业网站制作报价表sem代运营费用
  • 福永网站制作新闻播报最新
  • 装修网页设计网站友情链接图片
  • 企业的外币收入外管局网站做啥如何刷关键词指数
  • 丹东做网站的公司打开百度
  • 网站友情链接模板温州seo招聘
  • 东营经济技术开发区seo网站免费优化软件
  • 响应式网站的优势有那些的呢html家乡网站设计
  • 百度商桥绑定网站宣传网页制作
  • 建立企业网站选什么好杭州网站优化推荐
  • 农林科技公司网站模板seo关键词排名在线查询
  • 上海解封最新消息重庆seo整站优化设置
  • 珠海市官网网站建设平台seo查询百科
  • 汕头哪里做网站优秀网站设计欣赏
  • b2b网站对比网络运营seo是什么