デバッグビルドでリンク中にエラーが出るのは何故 – プログラミング – Home

デバッグビルドでリンク中にエラーが出る...
 
通知
すべてクリア

デバッグビルドでリンク中にエラーが出るのは何故


みのすけ
 みのすけ
(@みのすけ)
ゲスト
結合: 22年前
投稿: 64
Topic starter  

VC++ 6.0 MFC でプログラミングしています。

質問なのですが、リリースビルドではエラーは出ませんが
デバッグビルドでリンク中にエラーが出ます。
ビルド時のメッセージは以下の通りです。

どなたか原因と対策を教えて頂きたく、宜しくお願いします。

( ビルド時のメッセージ )

コンパイル中...
stdafx.cpp
コンパイル中...
dio1dlg.cpp
DIO1vc.cpp
コードを生成中...
リンク中...
atlsd.lib(Allocate.obj) : error LNK2001: 外部シンボル ___security_cookie は未解決
です
atlsd.lib(AtlTraceModuleManager.obj) : error LNK2001: 外部シンボ
ル ___security_cookie は未解決です
nafxcwd.lib(viewedit.obj) : error LNK2001: 外部シンボル ___security_cookie は未解
決です
nafxcwd.lib(viewcore.obj) : error LNK2001: 外部シンボル ___security_cookie は未解
決です
(途中、省略)
WinDebug/DIO1vc.exe : fatal error LNK1120: 外部参照 10 が未解決です。
link.exe の実行エラー

DIO1vc.exe - エラー 151、警告 0


引用解決済
トピックタグ
BlackWind
 BlackWind
(@BlackWind)
ゲスト
結合: 22年前
投稿: 18
 

おはようございます。

> 質問なのですが、リリースビルドではエラーは出ませんが
> デバッグビルドでリンク中にエラーが出ます。
> ビルド時のメッセージは以下の通りです。

リンクがデバッグの方にできていないため起こるエラーだと
考えられます。

次の方法を試してください。

1.プロジェクト→設定→設定の対象をWin32 Releaseにして→リンクタブをクリック
2.オブジェクト/ライブラリモジュール(&L)のテキストフィールド内を全てコピー
3.設定の対象をwin32 Debugにしてオブジェクト/ライブラリモジュール(&L)の
  テキストフィールド内にペーストして、OKを押下。

これで、コンパイルは可能かと思われます。


返信引用
みのすけ
 みのすけ
(@みのすけ)
ゲスト
結合: 22年前
投稿: 64
Topic starter  

BlackWind さん

>2.オブジェクト/ライブラリモジュール(&L)のテキストフィールド内を全てコピー

オブジェクト/ライブラリモジュールの欄は空白になっているのですが ???

ちなみにデバッグビルド出来る、別のプログラムも見てみましたが、
オブジェクト/ライブラリモジュールの欄は空白になっていました。


返信引用
BlackWind
 BlackWind
(@BlackWind)
ゲスト
結合: 22年前
投稿: 18
 

>2.オブジェクト/ライブラリモジュール(&L)のテキストフィールド内を全てコピー

> オブジェクト/ライブラリモジュールの欄は空白になっているのですが ???

そうですか。
では、次の作業を
1.プロジェクト→設定→設定の対象を「全ての構成」にして→リンクタブをクリック
2.以下のものを貼り付けてあげてください。
MFCS42.LIB MFCS42D.LIB MFCS42U.LIB MFCS42UD.LIB NAFXCW.LIB NAFXCWD.LIB
AFXCW.LIB UAFXCWD.LIB

3.貼り付けたら、OKを押下。

> リリースビルドではエラーは出ませんが
謎ですね・・・。
.libをリンクをしていないのに・・・コンパイルが通るとは・・・


返信引用
凸凹
 凸凹
(@凸凹)
ゲスト
結合: 22年前
投稿: 7
 

原因はよくわからないけど...

atlsd.lib って VC++6.0 には見当たりませんねぇ。
で、VC++.net にはありますねぇ。

___security_cookie って、VC++.net で新たに追加された
バッファオーバーフローチェック機能に関係しているっぽい
雰囲気ですねぇ。

...妙に怪しげですね~。

以上です。(^^;


返信引用
ナオーバ
 ナオーバ
(@ナオーバ)
ゲスト
結合: 23年前
投稿: 187
 

横からですが確認

>ちなみにデバッグビルド出来る、別のプログラムも見てみましたが、
>オブジェクト/ライブラリモジュールの欄は空白になっていました

別のプログラムではなく同じプロジェクトでデバックとリリースで違うのですよね?

あとリンクタブでデフォルトライブラリを全て無視にチェックありません?

以上です


返信引用
みのすけ
 みのすけ
(@みのすけ)
ゲスト
結合: 22年前
投稿: 64
Topic starter  

<<BlackWind さんへ>>

>1.プロジェクト→設定→設定の対象を「全ての構成」にして→リンクタブをクリック
>2.以下のものを貼り付けてあげてください。
>MFCS42.LIB MFCS42D.LIB MFCS42U.LIB MFCS42UD.LIB NAFXCW.LIB NAFXCWD.LIB
>AFXCW.LIB UAFXCWD.LIB

VC++ 6.0 の LIB フォルダーには NAFXCW.LIB NAFXCWD.LIB 以外はなく、
他の ’LIB が見つかりません’というエラーが出ます。

<< 凸凹 さんへ >>

>atlsd.lib って VC++6.0 には見当たりませんねぇ。
>で、VC++.net にはありますねぇ

このプログラムは、計測器を制御するパソコンに入れるボードを作っているメーカーから
入手したサンプルプログラムです。
現在、このプログラムを改造して使おうとしています。
メーカーに問い合わせした方が良いでしょうか。

<<ナオーバ さんへ>>

>別のプログラムではなく同じプロジェクトでデバックとリリースで違うのですよね?

そうです。同じプロジェクトでデバックとリリースで違うのです。

>あとリンクタブでデフォルトライブラリを全て無視にチェックありません?

チェックはありません。


返信引用
BlackWind
 BlackWind
(@BlackWind)
ゲスト
結合: 22年前
投稿: 18
 

>1.プロジェクト→設定→設定の対象を「全ての構成」にして→リンクタブをクリック
>2.以下のものを貼り付けてあげてください。
>MFCS42.LIB MFCS42D.LIB MFCS42U.LIB MFCS42UD.LIB NAFXCW.LIB NAFXCWD.LIB
>AFXCW.LIB UAFXCWD.LIB

> VC++ 6.0 の LIB フォルダーには NAFXCW.LIB NAFXCWD.LIB 以外はなく、
> 他の ’LIB が見つかりません’というエラーが出ます。

すいません。
きっと、NAFXCWD.LIB これだけでいいと思います。

<< 凸凹 さんへ >>
>atlsd.lib って VC++6.0 には見当たりませんねぇ。
>で、VC++.net にはありますねぇ

> このプログラムは、計測器を制御するパソコンに入れるボードを作っているメーカーから
> 入手したサンプルプログラムです。
> 現在、このプログラムを改造して使おうとしています。
> メーカーに問い合わせした方が良いでしょうか。

開発環境が違うと、こういう問題は起きるような・・・。
メーカーに問い合わせなくても良いと思いますよ。


返信引用
凸凹
 凸凹
(@凸凹)
ゲスト
結合: 22年前
投稿: 7
 

[ツール]-[オプション]の[ディレクトリ]タブで、
「表示するディレクトリ(S)」の「インクルードファイル」や「ライブラリファイル」
などの設定に、VC++.net のディレクトリが含まれているようなら、削除。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

逆行するような意見で申し訳ないのですが、
提供されているサンプルプログラムがどのような環境で作成されたかは
把握しておくべきだと思います。
話の内容からするとプロジェクトごともらっているような気もしますし、
MFCのバージョンやら何やらが絡んで動かないというようなことに
ならないためにもそこのところは把握しておくべきです。
(今回のものが動く動かないというより、一般論として)
その上で違う環境に移植しようというのであれば、それはそれでしょう。


返信引用
みのすけ
 みのすけ
(@みのすけ)
ゲスト
結合: 22年前
投稿: 64
Topic starter  

凸凹 さんへ
>[ツール]-[オプション]の[ディレクトリ]タブで、
>「表示するディレクトリ(S)」の「インクルードファイル」や「ライブラリファイル」
>などの設定に、VC++.net のディレクトリが含まれているようなら、削除。

VC++.net のディレクトリは有りませんでした。

PATIO さんへ
>逆行するような意見で申し訳ないのですが、
>提供されているサンプルプログラムがどのような環境で作成されたかは
>把握しておくべきだと思います。

2日前に問い合わせしましたが、まだ回答がありません。

これ以上、待てないのでサンプルプログラムの中で使える部分を取り出して、
新規に作ることにしました。

たくさんの方からのコメント、有難うございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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