Компиляция заголовочных файлов для C ++ с использованием VSCode Code Runner - PullRequest
0 голосов
/ 25 октября 2019

Я использую VSCode и расширение для запуска кода, чтобы попытаться запустить простой проект c ++ с включаемыми файлами.

Проект состоит из main.cpp:

#include <iostream>
#include <time.h>
#include "cval.hpp"

using namespace std;

int main(void)
{


    putHello();

    return 0;
}

AЗаголовочный файл hello.hpp:

#ifndef CVAL_H
#define CVAL_H
void putHello(void);

#endif

И hello.cpp:

#include <iostream>

using namespace std;

void putHello(void){
  cout<<"Hello"<<endl;
}

Если я определю putHello() в main.cpp, код скомпилируется. Если я включаю #include cval.cpp, то код компилируется.

Однако, когда я только включаю заголовок cval.hpp и использую расширение Code Runner, я получаю следующую ошибку:

  Undefined symbols for architecture x86_64:
  "putHello()", referenced from:
      _main in main-a07db2.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

IЯ понимаю, что это проблема, которую я не компилирую cval.cpp, поэтому компоновщик не может найти ее и правильно связать. Тем не менее, есть ли способ заставить VSCode автоматически компилировать файлы, которые были включены в заголовки?

Я не хочу указывать это все время или включать файлы .cpp, и этовозможность включить эти файлы без проблем в мои проекты кода на C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...