スレッド作成時のリンクエラー – プログラミング – Home

スレッド作成時のリンクエラー
 
通知
すべてクリア

スレッド作成時のリンクエラー


く~
 く~
(@く~)
ゲスト
結合: 22年前
投稿: 19
Topic starter  

VC++でマルチスレッドのSDKプログラムを作成中です。
_beginthreadと_endthreadを使用して実現しようと考えています。
参考にさせていただいているホームページでは、

1.コンパイラの設定でコード生成をマルチスレッドにする
2.Libcmt.libとMsvcrt.libをリンクする
3.ソースファイルにprocess.hをインクルードする

となっていたので、わかる範囲でそのように設定したつもりなの
ですが、以下のようなエラーが出力されます。

error LNK2005: private: __thiscall type_info::type_info
(class type_info const &) (??0type_info@@AAE@ABV0@@Z) は
既に libcmt.lib(typinfo.obj) で定義されています。

LNK2005: private: class type_info & __thiscall type_info
::operator=(class type_info const &) (??4type_info@@AAEA
AV0@ABV0@@Z) は既に libcmt.lib(typinfo.obj) で定義されています。

LNK2005: _malloc は既に libcmt.lib(malloc.obj) で定義されています。

 同じようなエラーが多数・・・

warning LNK4098: defaultlib 'LIBCD' は他のライブラリの使用と
競合しています。/NODEFAULTLIB:library を使用してください。

fatal error LNK1120: 外部参照 1 が未解決です。

Libcmt.libとMsvcrt.lib以外でリンクしているライブラリは、
ComCtl32.libです。
なにか設定がまずいのでしょうか?
使用している開発環境はVC.NETです。
どなたか思いつくことがあれば、ご指導願います。


引用解決済
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

> 2.Libcmt.libとMsvcrt.libをリンクする

CRT関連ライブラリはコンパイラスイッチで自動的にリンクされるので,
明示的にリンクする必要はないです。

LIBCMT.LIBはMulti-Thread用の通常のCRTライブラリで,
MSVCRT.LIBはCRTとしてMSVCRT.DLLを利用するためのImport-Libraryですから,
識別子が競合するのは当然です。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました