ライブラリ(alibrary.lib)にヘッダーファイルがあります。ライブラリは静的ライブラリ(.lib)であり、exeに適切にリンクします。
今、私はクラスVector3dを持っています。
class Vector3d
{
void amethod()
{
blah
}
};
Vector3d cross(const Vector3d &v0, const Vector3d &v1)
{
float x,y,z;
x = v0.y*v1.z-v0.z*v1.y;
y = v0.z*v1.x-v0.x*v1.z;
z = v0.x*v1.y-v0.y*v1.x;
return Vector3d(x,y,z);
}
Vector3dは、ヘッダーファイル(Vector3d .h)で宣言および定義されています。クラス宣言の後、私はクロス関数です。
libコンパイルはファイルですが、単体テストexeにリンクすると、次のエラーが発生します。
flywindow.obj :error LNK2005: "class Vector3d __cdecl cross(class Vector3d const &,class Vector3d const &)" (?cross@@YA?AVVector3d@@ABV1@0@Z) already defined in fly.obj
何か案は?
ありがとう