Я создал пример проекта c ++ в Visual Studio 2010 со следующими файлами.
Ah
#ifndef A_H
#define A_H
#include <iostream>
void foo();
#endif
A.cpp
#include "A.h"
void foo()
{
int a = 1;
}
main.cpp
#include "A.h"
int main(int argc, char* argv[])
{
foo();
return 0;
}
После сборки я получаю следующий вывод:
1> ------ Начата сборка: Проект: opengl_test, Конфигурация: Отладка Win32 ------
1> main.cpp
1> А *
1> A.cpp
1> Генерация кода ...
1>Debug \ A.obj: предупреждение LNK4042: объект указан более одного раза;дополнительные функции игнорируются
1> main.obj: ошибка LNK2019: неразрешенный внешний символ «void __cdecl foo (void)» (? foo @@ YAXXZ), на который ссылается функция _main
1> C: \Пользователи \ alp \ Projects \ Test Samples \ opengl_test \ Debug \ opengl_test.exe: фатальная ошибка LNK1120: 1 неразрешенный внешний текст
========== Сборка: 0 успешно завершена, 1 не выполнена, 0 запущенана текущий момент, 0 пропущено ==========
В чем причина этой ошибки?