我有一個主要功能,它看起來像這樣:錯誤建築在Xcode
#include <vector>
#include "mins_ndim.h"
#include "ObjectiveFunction.h"
int main (int argc, char * const argv[]) {
ObjectiveFunction objective;
Frprmn<ObjectiveFunction> frprmn(objective);
std::vector<double> p(2);
p[0]=7; p[1]=3;
frprmn.eat();
}
但是這給我的錯誤:
Undefined symbols:
"Frprmn<ObjectiveFunction>::eat()", referenced from:
_main in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
eat()
在Frprmn的結構定義列在mins_ndim.h
並在mins_ndim.cpp
中定義。如果我在mins_ndim.h
中定義它,那麼我不會得到這個錯誤。我認爲這是與鏈接有關的事情,但我不知道如何讓xcode將其排序?!
你的main文件看不到'mins_ndim.cpp',所以如果你在那裏定義'eat()',你會得到一個未定義的符號。 – lcs 2013-04-09 17:16:28
那麼如何使用我在.cpp文件中定義的函數呢?該函數在頭文件中列出,所以我應該可以訪問它。 – tiswas 2013-04-09 17:17:27