7個のCと7個のヘッダーと1個のリソースを
VS2005(Windows XP下)で
ビルドしました。
そうすると、
個々のソースのエラーはなくなり、リソースも通って、
リンクした時に、
下記のエラーが出ました。
perspect(image_in[i], image_out[i], a, b, x0, y0, z0, zr, xr, yr, v, scr);
に対して、
1>WinCImage.obj : error LNK2019: 未解決の外部シンボル _perspect が関数
_MainWinProc@16 で参照されました。
他、
1>WinCImage.obj : error LNK2019: 未解決の外部シンボル _affine が関数
_MainWinProc@16 で参照されました。
1>WinCImage.obj : error LNK2019: 未解決の外部シンボル _rotation が関数
_MainWinProc@16 で参照されました。
1>WinCImage.obj : error LNK2019: 未解決の外部シンボル _shift が関数
_MainWinProc@16 で参照されました。
等のものがいくつか出て、
最後に
1>WinCImage.obj : error LNK2019: 未解決の外部シンボル _MainWndProc@16 が関数
_InitApplication で参照されました。
というエラーがでておます。
InitApplicationに関しては、
BOOL InitApplication(HANDLE);
という設定のし方をしています。
どっかでタイプミスしたのかなあ。
どんな追い方をしていけばいいでしょうか?
> WinCImage.obj : error LNK2019: 未解決の外部シンボル _perspect が関数
_MainWinProc@16 で参照されました。
> ...
MainWinProcから呼ばれているperspectの実装部が見当たらない(リンクできない)
というてます(他も同様)。
> 7個のCと7個のヘッダーと1個のリソースをVS2005(Windows XP下)で
ビルドしました。
C-codeがC++としてコンパイルされていませんか?
C++としてコンパイルされた場合、シンボルがCとは異なるものになるので
リンクに失敗します。
ありがとうございます。
おっしゃること、
後記は、その通りだと思います。
ところで、VS2005で、
C++でコンパイルしているか、
それともC++でコンパイルしているかは、どこで決まるのでしょうか?
それと、VS2005の場合は、リビルドをかければ、
ディレクトリの中の全然の c.、h.、rc.に対して、まとめてコンパイルしてくれ、リンクもかけてくれるようですが、
VC++6でそれをやろうとするなら、
どうすればよいのでしょうか? (単独のソースでしかやったことがないので)
VS2005とVC++6、両方使う時が多いので、お聞きしました。
> C++でコンパイルしているか、
> それともC++でコンパイルしているかは、どこで決まるのでしょうか?
拡張子/コンパイル・オプション/extern Cの有無 で決まります。
> VC++6でそれをやろうとするなら、どうすればよいのでしょうか?
VC++6はとうの昔に捨てたのでわかりません。
>C++でコンパイルしているか、
>それともC++でコンパイルしているかは、どこで決まるのでしょうか?
特にオプションの指定の無い場合はソースの拡張子ですが、
普通はコンパイルオプション
/TC Cとしてコンパイル
/TP C++としてコンパイル
で決まります。とマニュアル「コンパイルオプション」項にあります。
これを指定するのはプロジェクトのプロパティです。
>VC++6でそれをやろうとするなら、
VS6.0にもリビルドはあります。
VSを立ち上げてメニューを見ればすぐわかることですけど(笑)。
みなさん。
ありがとうございます。
とりあえず、VS2005の方で、
コンパイルオプションが、やはり、
ご指摘のように、
C++になっていたので、
Cに変えてみました。
でも、現象は変わらずで、
依然、先と同様のリンクエラーが出ます。
タイプミスもないようなんですが、
逆に、上記のperspectなどと言う関数は、別ソースなり別ヘッダーなりで、
どんな形で指定されていないといけないのでしょうか?
> C++になっていたので、
> Cに変えてみました。
で、re-build したんですよね?
>逆に、上記のperspectなどと言う関数は、別ソースなり別ヘッダーなりで、
>どんな形で指定されていないといけないのでしょうか?
コンパイルエラーが出てないのだから、ヘッダー
は揃っているのでしょう。
足りないのは*.libです。
パースペクト変換やアフィン変換など、3Dに関係するライブラリが
どこかにあり、それをプロジェクトに追加してないだけのように
思います。