Я пытаюсь связать/соединить отдельные файлы вместе для компиляции. Я никогда не делал этого раньше, поэтому я потерял эту ошибку. Это кажется, как будто я ссылался на то, что мне нужно.Неопределенная ссылка на файл
У меня есть три файла, main.cpp, parser.cpp и header.h Основные вызовы парсер для разбора текста (хотя я не был в состоянии проверить, если он на самом деле работает еще: л)
main.cpp -
#include "header.h"
using namespace std; // I know this isn't recommended, I'm changing this later.
int main(){
string input, arg1, arg2;
vector<string> parsedIn;
cout << "<";
while(getline(cin, input)){
parsedIn = parser(input);
//more code, this is the only call to parser and compile error
//stops here
parser.cpp -
#include "header.h"
std::vector<std::string> parser(std::string &input){
int i=0;
//int begin=1;
int count=0;
std::vector<std::string> parsedIn;
while(i<input.length()){
char temp = input.at(i);
if(temp != ' '){
parsedIn[count] += temp;
count++;
}
i++;
}
if(count < 3)
parsedIn[0] = "Error"; // Set first value to "Error" to report an input issue
return parsedIn;
}
header.h
#include <algorithm>
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
std::vector<std::string> parser(std::string &input);
Я знаю, что я должен использовать охранников, а также, но мой TA не совсем ясно, как я поставил эти вверх ... шаги ребенка, хотя. Это мой первый раз с C++, поэтому я хотел бы выяснить, почему это не ссылается.
Ошибка в неопределенном обращении к парсеру, конечно.
Редактировать: Я внесла изменения в код, чтобы отразить то, что я сделал по вашему предложению.
В частности синтаксического анализа (станд :: строка & вход) стал парсер (станд :: строка & вход)
Вставьте команды, которые вы используете, чтобы попытаться скомпилировать и/или ссылку. – aschepler
Какую команду вы выполняете непосредственно перед получением ошибки? Хит кнопку compike/gcc/whatever ... – atk
Этот код тот же, что вы компилируете? У вас есть функция, называемая parser в header.h, а другая называется parse в parser.cpp. – bruvel