Я использую Ubuntu 16.04. Когда я пытаюсь скомпилировать программу с помощью
g++ -g main.cpp -o основной
Это моя версия g++
г++ --версия
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Авторское право (C) 2019 Free Software Foundation, Inc.
Это бесплатное программное обеспечение; см. источник условий копирования. Здесь нет
гарантия; даже не для КОММЕРЧЕСКОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.
Я получаю эту ошибку компиляции
main.cpp:8: неопределенная ссылка на `Helper::IsStringNumeric(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: ошибка: ld вернул 1 статус выхода
основной.cpp:
#include "Помощник.h"
#include <иопоток>
#include <вектор>
основной ()
{
std::cout << Helper::IsStringNumeric("200");
}
Помощник.h
#ifndef HELPER_H
#define HELPER_H
#include <вектор>
#include <строка>
помощник класса
{
частный:
/* данные */
публичный:
статическое логическое значение IsStringNumeric (const std::string &str);
};
#endif
Helper.cpp
#include "Помощник.h"
#include <строка>
#include <алгоритм>
bool Helper::IsStringNumeric(const std::string &str)
{
std::string::const_iterator iterator = str.begin();
в то время как (итератор != str.end() && std::isdigit(*iterator))
{
++итератор;
}
return !str.empty() && iterator == str.end();
}
Мои файлы cpp и заголовков кажутся правильными, поэтому я не уверен, почему я получаю ошибки