0
Я пытаюсь создать базовую программу приветствия, но не удается решить некоторые проблемы с связыванием.Устранение проблем с экспортируемой функцией
в program.cpp
#include <iostream>
#include <string>
#include "scanner.h"
using namespace std;
int main() {
string result = createScanner();
cout << result << endl;
return 0;
}
в scanner.h
#include <string>
using namespace std;
string createScanner();
в scanner.cpp
#include <scanner.h>
#include <string>
using namespace std;
string createScanner() {
return "hello world";
}
С помощью этого метода CLI:
clang++ -O3 -std=c++11 -stdlib=libc++ -I./includes/ -I./compiler/ compiler/program.cpp -o hej
И я получаю эту ошибку:
Undefined symbols for architecture x86_64:
"createScanner()", referenced from:
_main in program-45fd7b.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [all] Error 1
Добавить 'scanner.cpp' в командной строке тоже. –
Не '-I./Компилятор /' достаточно? 'scanner.h' и' scanner.cpp' есть? – einstein
добавить 'scanner.cpp' и' #include "scanner.h" 'в scanner.cpp – edwardramsey