栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

mac vscode 编译c++ 多目录代码 demo

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mac vscode 编译c++ 多目录代码 demo

背景
mac 上使用 vscode 开发c++ 代码。针对多目录编译配置的问题做一个demo。记录一下遇到的问题。
首先需要安装插件 
	C/C++ IntelliSense
	Code Runner 【非必须。如果需要右键run 建议安装】
说明:本教程未使用cmake 编译。 仅仅使用了依赖.vscode 的配置文件编译 & 右键编译+运行。 
一、项目结构
vscode_jni
	.vscode
		c_cpp_properties.json
		launch.json
		setting.json
		tasks.json
	api
		demo.hpp
	core
		demo.cpp
	target

	main.cpp
二、测试代码 c_cpp_properties.json 修改部分
{
    "configurations": [
        {
            "name": "macos-gcc-x64",
            "includePath": [
                "${workspaceFolder}/api",
                "${workspaceFolder}
public:
    int add2sum(int a, int b);
};

#endif
demo.cpp
#include 
#include "demo.hpp"
using namespace std;

int demo::add2sum(int a, int b)
{
    std::cout << "demo::add2sum" << std::endl;

    return a + b;
}
main.cpp
#include "demo.hpp"

int main()
{

    demo d1;
    d1.add2sum(1, 5);

    return 0;
}

三、调试 shift+command+B 编译

首先打开 main.cpp 使用快捷键 shift+command+B 编译
如果运行成功可以看到如下显示【如果出错自行调正 task.json 配置信息】
Executing task: g++ /Users/XXX/Downloads/workspace/c++/vscode_jni/core/*.cpp main.cpp -I/Users/XXX/Downloads/workspace/c++/vscode_jni/api -o /Users/XXX/Downloads/workspace/c++/vscode_jni/target/main.o -g -Wall -fexec-charset=UTF-8 -std=c++11 <

控制台 进入 cd /Users/XXX/Downloads/workspace/c++/vscode_jni/
执行 ./main.o
一切顺利可以看到
“demo::add2sum ”

右键编译

为了和上述编译区分开来 这里生成的文件后缀使用 so
打开 code runner的 Executor Map 下的 setting.json

添加如下配置

 "code-runner.executorMap": {
          "cpp":"g++ $dircore/*.cpp main.cpp -I$dirapi -o $dirtarget/$fileNameWithoutExt.so && $dirtarget/$fileNameWithoutExt.so"
    },

此时打开 main.cpp 使用右键 Run code 即可执行
一切正常可以在控制台看到
“demo::add2sum ”

PS:调试过程中在这一步遇到 main.cpp 引入头文件 爆红的问题,鼠标放上去提示 “… configurationProvider 显示…”。 当时 使用快捷键 Shift+command+P 然后输入 configurationProvider 直接禁用掉了。
代码地址 :「部分配置有改动」
https://gitee.com/Mylomen/vscode_jni

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/589226.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号