网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 其他技术区 > 代码与软件发布 >

在Windows的VSCode上查看linux代码

时间:2026-01-24 16:45

人气:

作者:admin

标签:

导读:很多跨平台的项目会使用宏定义方式检测编译平台和目标平台,比如sunshine。在Windows平台,编译器通常会定义 _WIN32 宏,来标识Windows平台;Linux平台的话会有 __linux __linux__ linux 等宏定义...

很多跨平台的项目会使用宏定义方式检测编译平台和目标平台,比如sunshine。在Windows平台,编译器通常会定义 _WIN32 宏,来标识Windows平台;Linux平台的话会有 __linux __linux__ linux 等宏定义来标识linux平台;macos系统(可能也包含ios ipados等)的宏定义则是 __APPLE__
所以如果直接在Windows环境打开项目的话,linux专有部分(被#ifdef __linux等)包裹部分不会自动高亮和解析。
要正常查看linux环境部分代码,我们需要对VScode的配置进行一定的修改。
首先添加 c_cpp_properties.json 文件。在项目根目录创建 .vscode 文件夹,手动创建新文件。(或者按下 ctrl+shift+p 打开命令面板,搜索 C/C++ Edit Configurations(JSON)
随后在新建的json文件添加目标平台的配置。(在 configurations 数组内添加)
示例模板:(linux,arm64环境)

        {
            "name": "linux-aarch64",
            "includePath": [
                "${default}"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "__linux__",
                "linux"
            ],
            "compilerPath": "",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "linux-gcc-arm64"
        }

其中 intelliSenseMode 即为ide代码提示的目标环境,例如想要使用gcc编译arm64平台的linux项目可以设置linux-gcc-arm64;如果用gcc编译x86/64架构linux项目可以设置 linux-gcc-x64等。
然后 compilerPath 一定要设置并且设置为空字符串(即""),否则vscode会自动检测编译器,并设置错误的配置,同时会在 output 栏输出:

IntelliSenseMode was changed because it didn't match the detected compiler. Consider setting "compilerPath" instead. Set "compilerPath" to "" to disable detection of system includes and defines.

假如设置 intelliSenseMode 依旧不高亮对应平台代码(主要是linux,linux系统的宏定义可能较多较杂),可能是由于这个模式的默认环境宏定义和项目的不匹配,比如项目使用 __linux 宏定义,但是编译器使用的是 __linux__ ,这种情况的话,可以手动将项目的宏定义添加到配置的 defines 数组中。

也欢迎来我的自建博客站看看哦:lvxy.xin

本文来自博客园,作者:是流光呀,转载请注明原文链接:https://www.cnblogs.com/lvxylvxy/p/19526981

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信