VS2008裡面新建了一個項目Test,自己寫了一個頭文件sum.h,內容如下:
#ifndef SUM_H
#define SUM_H
int sum(int a,int b);
#endif
實現函數sum.cpp,代碼如下:
#include "sum.h"
int sum(int a,int b )
{
return a+b;
}
main函數如下:main.cpp代碼:
#include "sum.h"
#include <iostream>
using namespace std;
int main()
{
int a,b;
while (cin>>a>>b)
{
cout<<sum(a,b)<<endl;
}
return 0;
}
編譯可以運行,結果也沒什麼問題。
但是當我把sum.h,sum.cpp放到外面的一個文件夾include\TEST裡面的時候,並且在C/C++ ->常規->附加包含目錄中添加了include文件夾
並且main.cpp第一行代碼改為#include "test/sum.h"
(敲test/提示有sum.h文件,所以包含路徑是沒什麼問題的)時,編譯通過不,報錯:main.obj : error LNK2019: 無法解析的外部符號 "int __cdecl sum(int,int)" (?sum@@YAHHH@Z),該符號在函數 _main 中被引用
難道這個頭文件和cpp文件非要和主函數放在一個目錄下才能用嗎?放在外部怎麼引用?
問題已經解決,需要在項目Test->源文件->添加->現有項
添加include/TEST裡的sum.cpp文件,這樣編譯的時候就可以找到sum.cpp文件,即sum函數的定義了