c++ - 如何使用多个文件为C++设置Sublime 3构建

标签 c++ sublimetext3 sublime-build

首先,我对SO一无所知,所以请对我放轻松:)
话虽如此,我的问题可能真的很容易回答:
如何在多个文件( header /实现文件)的c++中使用sublime text 3
我一直在尝试其他人提供的一些构建系统,
这是我目前正在使用的,似乎可以很好地编译单个.cpp文件,但是告诉我一些我不理解的错误
这是我使用g++的构建配置

{
"cmd": ["g++.exe", "-std=c++14", "-o", "$file_base_name", "$file", "&&", "start", "cmd", "/c", "$file_base_name & echo. & echo. & pause"],
"shell": true,
"selector": "source.c++"}
这是我的main.cpp:
#include <iostream>
#include <string>
#include "num.h" 
using namespace std;

int main(){

Num n(35);
cout << n.getNum() << endl;
return 0;}
这是我的num.h文件:
#ifndef NUM_H
#define NUM_H
class Num
{
    private:
        int num;
    public:
        Num(int n);
        int getNum();
}; 

#endif
这是我的num.cpp:
#include "num.h"
#include <iostream>
#include <stdlib.h>



Num::Num(int x){
    num = x;
}
int Num::getNum()
{
 return num;
}
所有文件都在同一目录中,并且每当我在像这样的命令上使用g++时:(g++(tdm64-1)5.1.0)
g++ main.cpp num.cpp
没问题,一切都很好
但是每当我尝试用崇高的文字来构建它时,都会抛出此错误
C:\Users\GEBRUI~1\AppData\Local\Temp\ccqq94my.o:main.cpp:(.text+0x1a): undefined reference to `Num::Num(int)'
C:\Users\GEBRUI~1\AppData\Local\Temp\ccqq94my.o:main.cpp:(.text+0x26): undefined reference to `Num::getNum()'
collect2.exe: error: ld returned 1 exit status
[Finished in 0.8s]
如果有人可以告诉我我在做什么错了,我将不胜感激:)

最佳答案

一旦您开始需要编译多个文件的领域,那么最好是开始使用makeCMake,而不是尝试自己在命令行或构建系统中构建编译命令。这样,您无需在每次向项目中添加新文件时都编辑构建系统。
Sublime附带了一个Make构建系统,但是您需要手动或使用诸如Makefileautoconf之类的工具在外部生成automake CMakeBuilder 软件包看起来对使用CMake很有用(我自己还没有使用过),尽管您当然也可以使用外部工具。

关于c++ - 如何使用多个文件为C++设置Sublime 3构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63905402/

相关文章:

c++ - 如何将像素缓冲区复制到更大的缓冲区

c++ - 将指向成员变量的指针作为参数时出错;为什么?

sublimetext3 - Sublime Text 3中的自定义语法

检测正方形后运行命令的c++算法

c++ - 如何检查字符是否包含特定字母

sublimetext3 - Sublime Text 3,如何添加右键?

sublimetext3 - SublimeLinter:警告:jshint 已停用,无法定位 'jshint'

python - 使用 SublimeREPL 和 Python 3 进行 Sublime 构建

c++ - 在 Sublime Text 3 上构建 C++ 文件未结束

sublimetext3 - Sublime Text 在构建输出中显示 "NUL"个字符