我有2個文件:聯動的內聯函數
1的main.cpp
#include<iostream>
using namespace std;
int min(int,int);
int abs(int);
int gcd(int,int);
const char *s = "Read Error!!";
int main()
{
cout << "Enter first Value: ";
int i;
cin >> i;
while(!cin)
{
cout << s << endl;
cin >> i;
}
cout << "Enter second Value: ";
int j;
cin >> j;
while(!cin)
{
cout << s << endl;
cin >> j;
}
cout << "\nmin: " << min(i,j) << endl;
i = abs(i);
j = abs(j);
cout << "gcd: " << gcd(i,j) << endl;
return 0;
}
## 2 gcd.cpp
inline int abs(int iobj)
{
return iobj < 0 ? -iobj : iobj;
}
inline int min(int p1,int p2)
{
return p1 < p2 ? p1 : p2;
}
int gcd(int v1, int v2)
{
while(v2)
{
int temp = v2;
v2 = v1 % v2;
v1 = temp;
}
return v1;
}
現在的問題是當編譯2個文件時,出於顯而易見的原因沒有問題,但是在鏈接時出現錯誤: main.cpp :(。text + 0x100):未定義引用'min(int,int)' 當我註釋行包含調用min()它的聲明它的作品。 現在,爲什麼在世界abs()正在工作,gcd()正在工作,但min()不是? 我正在使用g ++ in Linux。
從'abs'和'min'中刪除'inline'限定符gcd.cpp – 2011-03-11 11:46:23
您是否聽說過縮進? – 2011-03-11 11:49:19
您能否讓您的問題標題更具描述性?此標籤中的幾乎所有問題都是「關於CPP項目樣本」。 – 2011-03-11 11:50:29