|
分類:[C/C++]
こんにちは。現在以下のようなコードを書いています
#include "stdafx.h" #include <vector> #include <list> #include <algorithm> #include <iostream> #include <stdlib.h> #include <iterator> #include "etime.h" using namespace std;
int _tmain(int argc, _TCHAR* argv[]) { int i,m = 100, n = 1000; list<int> l,ll; vector<int> v(n); CETime e; for(i=0; i<n; ++i) v[i] = i; random_shuffle(v.begin(),v.end()); copy(v.begin(),v.end(),back_inserter(ll)); e.Reset(); for(i=0; i<m; ++i) { l = ll; l.sort(); } cout << e.Sec() << endl; e.Reset(); for(i=0; i<m; ++i) { copy(ll.begin(),ll.end(),v.begin()); sort(v.begin(),v.end()); } cout << e.Sec() << endl; system("PAUSE"); return 0; }
(etime.h) #include <sys/types.h>
class CETime { time_t m_time; unsigned short m_millitm; public: inline void Reset(); inline double Sec()const; CETime(){Reset();} };
(etime.cpp) #include "stdafx.h" #include "etime.h" #include <sys/timeb.h>
void CETime::Reset() { timeb tb; ftime(&tb); m_time = tb.time; m_millitm = tb.millitm; }
double CETime::Sec()const { timeb tb; ftime(&tb); return double(tb.time - m_time) + 0.001*(tb.millitm - m_millitm); }
これを実行すると エラー 2 error LNK2019: 未解決の外部シンボル "public: void __thiscall CETime::Reset(void)" (?Reset@CETime@@QAEXXZ) が関数 _wmain で参照されました。 エラー 1 error LNK2019: 未解決の外部シンボル "public: double __thiscall CETime::Sec(void)const " (?Sec@CETime@@QBENXZ) が関数 _wmain で参照されました。 というエラーが出て実行不能になります。よくある外部リンクエラーらしいのでスペルミス、実態未定義、パブリックメンバーではないので参照不可も疑ってみたのですが、いずれも特に問題がないようでした
実行環境はWindows 7 64bit、Visual C++ 2010です
原因わかる型いらっしゃいますでしょうか?
|