Не удалось скомпилировать отдельные файлы в Visual Studio (.h, .cpp и main.cpp). (ОШИБКА: LNK 2001 LNK 2019)
Я пытаюсь создать программу, которая содержит эти файлы: main.cpp, authenticate.cpp и authenticate.h (все они в исходных файлах) с использованием Visual Studio 2017. Программа просто проверяет ввод имени пользователя и пароля. Суть в том, чтобы работать с безымянным пространством имен.
authenticate.h
#include<iostream>
#include<string>
#ifndef AUTHENTICATE_H
#define AUTHENTICATE_H
namespace authenticate {
void inputUserName();
void inputPassword();
std::string getUserName();
std::string getPassword();
}
#endif // !AUTHENTICATE_H
authenticate.cpp
#include<iostream>
#include<string>
#include"authenticate.h"
namespace { // practice using unnamed namespace.
std::string username;
std::string password;
bool nameValid() { // check if 8 letters were entered
bool allLetter = true;
for (unsigned int x = 0; x < password.size(); x++) if (isalpha(password[x])) {
allLetter = false;
break;
}
return(username.size() == 8 && allLetter);
}
bool passValid() {// check if 8 characters including at least 1 non-letter were entered
bool allLetter = true;
for (unsigned int x = 0; x < password.size(); x++) if (isalpha(password[x])) {
allLetter = false;
break;
}
return((password.size() == 8) && !allLetter);
}
}
main.cpp
#include<iostream>
#include"authenticate.h"
int main()
{
authenticate::inputUserName();
authenticate::inputPassword();
std::cout << "Your username is "
<< authenticate::getUserName()
<<" and your password is: "
<<authenticate::getPassword() << std::endl;
return 0;
}
Прежде чем столкнуться с этими ошибками, я следовал предыдущим инструкциям и установил точку входа в main.cpp, а подсистему - в CONSOLE. Когда я компилировал каждый файл, ошибки не было. Ошибка возникает при сборке программы. Все они LNK 2001 и LNK 2019.
**Error** LNK2001 unresolved external symbol _main.cpp
(Нажмите на изображение, чтобы увеличить)
Я предполагаю, что я допустил ошибку в соглашении, так как программа не смогла запуститься.