• ベストアンサー

【VC++6.0(MFC)】警告「LINK : warning LNK4075:」の対処方法を教えてください。

いつもお世話になっています。 VC++初心者です。 先人が残したVC++6.0のMFCのソースをリビルドすると 以下のような警告がでます。 ***** コードを生成中... リンク中... LINK : warning LNK4075: /EDITANDCONTINUE は /INCREMENTAL:NO の指定によって無視されます ***** リンクがうまくできていないようですが、この対処の仕方を教えていただけませんでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 こんばんは。 「プロジェクト」→「設定」→「リンク」のタブで、下にある「プロジェクトオプション」のテキストボックス内  /incremental:no  となっている文字列を  /incremental:yes  に変更してから「OK」ボタンで確定。  その後にリビルドして見て改善しませんか。

yuki7091
質問者

お礼

ご回答、ありがとうございます。 問題が解決しました。 今回の /incremental:noについて調べてみると 「リンカーが増分リンクをどのように処理するかを制御します。」 と説明がありました。 (私にはちんぷんかんぷんです。) 簡単に言うとどういうことなのでしょうか。 もし、宜しければ、再度ご教授いただきたいと思います。

その他の回答 (2)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

簡単に言うと、「変更のあった場所だけを置き換える」のがインクリメンタル(増分)リンクです。

yuki7091
質問者

お礼

ご回答ありがとうございます。 分かりました。 ありがとうございました。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

差分コンパイル無効オプション(/INCREMENTAL:NO)により、デバッグ中のプログラム変更(/EDITANDCONTINUE)ができない、という警告です。 警告ですから、リンク自体はうまくいってますよ。

yuki7091
質問者

お礼

ご回答ありがとうございます。 リンクは成功してるのですか、、、 今まで、まったくコンパイル方法まで 注意していませんでした。 ということは、使用する分には問題なさそうですね。

関連するQ&A

  • VC++でビルド時の、リンク警告 LNK4006、LNK4221 を消したい

    こんにちは。 先週から仕事で Visual Stadio 2005 を使用して、C言語 でプログラムを書いています。 コードをビルドする際、ライブラリ作成時に以下の警告がでます。 1>Dynamic_02.lib(Dynamic_02.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR は Dynamic_01.lib(Dynamic_01.dll) で定義されています。2 つ目以降の定義は無視されます。 1>Dynamic_02.lib(Dynamic_02.dll) : warning LNK4221: パブリック シンボルが見つかりませんでした。アーカイブ メンバにアクセスできません。 これらの警告を消す方法はないですか? 以下は手順の詳細です。 1. 動的リンクライブラリ、Dynamic_01.dll を作成した。 同時にインポートライブラリ Dynamic_01.lib が作成される。 2. 動的リンクライブラリ、Dynamic_02.dll を作成した。 同時にインポートライブラリ Dynamic_02.lib が作成される。 3. Dynamic_01.dll と Dynamic_02.dll の両方の関数を使用する、 静的リンクライブラリ、Static_01.lib の作成を試みた。 追加の依存関係に Dynamic_01.lib と Dynamic_02.lib を指定し、 Static_01.lib をビルドすると、上記の警告が表示される。

  • mfc vc++2005 で構成が正しくない・・・

    vc++2005 mfcで作成したプログラムで上記が出て他のPCで動きません。 mfc以外はファイルのコピーをするとかだけの単純なツールなのでmfcが 悪さしているとは思います。 mfcをスタティックでリンクにして、コード生成のところのマルチスレッドDLLを マルチスレッドに変えるとやはりいけますが、別にあったwindows7ではmfcと コード生成のところを変えなくても問題なくいけました。 vc++2005 redistributable パッケージを入れても変わりません。 mfcは別物なのでしょうか?? ネットを見ているとredistributableパッケージを入れれば大丈夫!!という 感じなのですが。 すいませんがどなたかご教授ください。

  • VC++でのリンクエラー [error LNK2005]

    VC++でMFCを使用してダイアログベースのEXEを 作成しています。 以下のクラスのメンバ関数などを使用して、色の操作をしています。 CDC::SetBkColor() CDC::SetTextColor() ビルド時、以下のリンクエラーとなりました。 ---------------------------------------------- nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) はすでに LIBCMT.lib(delete.obj) で 定義されています Release/MenueTest.exe : fatal error LNK1169: 1 つ 以上の複数回定義されているシンボルが見つかりました link.exe の実行エラー ---------------------------------------------- MFC と C(?)のライブラリで delete()関数が競合しているようですが、これを回避する方法をご存知の方、ご教授願います。 <環境> OS:Windows2000 VC++6.0 <備考> リンクエラーになるのは以下の組み合わせです。 「MFCをスタティックリンクする+リリース版」 MFCをスタティックリンクしてもデバッグ版のビルドだとエラーになりません。 また、MFCをスタティックリンクしない場合もエラーにはなりません。 ただし、リンクエラーにならなかった場合、どちらのオブジェクトの delete()関数が呼ばれるか不明で、それが正しいのかも心配です。

  • VC++/MFCで error LNK2001

    C++/MFCで以下のようなエラーが出て困っております。 だれか、原因の分かる方はいらっしゃいますでしょうか? 1>Test.obj : error LNK2001: 外部シンボル ""public: __thiscall CSampleApp::CSampleApp(void)" (??0CSampleApp@@QAE@XZ)" は未解決です。 1>C:Test\src\Test\Release\Test.exe : fatal error LNK1120: 外部参照 1 が未解決です。 エラーのあったソースコード --------------------------------------------------------- #include "../Sample/Sample.h" void Test::Onfile() { std::auto_ptr<CSampleApp> p( new CSampleApp() );//←このソースコードを追加するとエラーになります。 } --------------------------------------------------------- Sample.h --------------------------------------------------------- class CSampleApp : public CWinApp { public: CSampleApp(); }; extern CSampleApp atTheApp; ----------------------------------------------------------

  • vc++6.0 のリンクエラー 教えて

    VC++6.0を使っています。オープンソースのプログラムをビルドすると、 XXXXXX.obj : error LNK2001: unresolved external symbol __imp__ntohl@4 のリンクエラーが出ます。 どうすれば良いのでしょうか? 何か設定でも間違えているのでしょうか? 初心者なので よろしくお願いいたします。

  • warning LNK4098で試行錯誤しています

    環境はOS:Win98 VisualStadio6.0を使用して作成しています。作成言語はC言語とFORTRAN言語です。FORTRANのコンパイルははVisualFortoranをインストールしています。 現象は、Cで作ったメインの中でフォートランを呼ぶCのスレッドを_beginthreadを使って作成しています。この状態でビルドすると「warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library」が出ます。そこで、プロジェクト設定のリンクタブで無視するリンクライブラリを以下のように設定してビルドしましたが。同じ現象でした。 無視するライブラリ:libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib 何方か教えて頂けないでしょうか、宜しくお願いいたします。

  • 【VC++6.0】MFCを利用する参考書を教えてください。

    いつもお世話になっております。 VC++初心者です。 現在、VC++6.0で過去のソースを改良しているのですが、 (個人的な主観ですが)普通のCあまりにコードが 異なりすぎていて、なかなか作業がはかどりません。 (といっても、C言語も熟知は全然していないです。) そこで、以下の内容を満たすような参考書をご存知で あれば教えて頂きたくお願いします。 *************************** ・初心者向け。 ・VC++6.0、MFCの内容。 ・1つの課題があり、それを順次作り込んでいくような内容。 ・オブジェクト指向の説明がある。  (手続き型とオブジェクト指向型プログラミングの   対比があれば嬉しいです。) ・オブジェクト指向でコーディングされている。 ・デバグの仕方、ソースコードの追い方が若干詳しく書かれてる。 *************************** 以上、よろしくお願いします。

  • SQLLIB80.DLLリンクの警告について

    VCでCGIを作成しています。 Pro*Cを使用しているのですが、ビルドする時に以下の警告が発生します。 「LINK : worning LNK4089: "sqllib80.dll" へのすべての参照は /OPT:REF によって廃棄されます」 ちなみに ビルド→アクティブな構成の設定 で Win32 Debug にすると警告は出ないのですが、 Win32 Release にすると上記の警告が発生します。 見たところ、設定等はDebugとReleaseで全く同じです。 どなたかお分かりになる方がいらっしゃったら よろしくお願いします。

  • 【VC++6.0(MFC)】「Out of memory」の対処の仕方を教えてください。

    いつも大変お世話になっております。 VC++初心者です。 現在、VC++6.0(MFC)のソース修正を行っております。 そのソースを長時間実行させると、メッセージボックスで タイトル:ソフト名 メッセージ:Out of memory と出てきて悩んでいます。 (コンパイル、ビルドは成功しています。) (そのソフトを立ち上げなおすと、しばらくの間は正常に動作します。) 大変お手数ですが、 この問題を対処する手順や怪しいと思われる箇所を 経験則でも宜しいので教えて頂けませんでしょうか。

  • VC++ リンクエラーについて

    こんにちわ。 VC++初心者です。 宜しくお願い致します。 環境は、XP HomeEditionSP2 CV++6.0 です。 VCの基本を理解する為及びプログラミングの勉強の為、簡単な表示ソフトを自作し、ビルトした後実行したら、表示されるはずのウインドウが表示されませんでした。 ソースコード修正後、再度ビルドをかけたら、上記LNK1168が発生しました。 WEBから色々情報をとってみると、 ”ターゲットが実行中であり終了できていないので、ターゲットを実行中止にした後にあらためてビルドすればよい”とありました。 ウインドウが表示されていれば、右上の×マークを押すことでとりあえずは終了(実行中止)出来ますが、今回私が作成したバグ入りソフトの様に、ウインドウが表示しない状態でターゲットの実行中止をするにはどうすれば良いでしょうか? VC++には、実行中止、というメニューは無いような気がするのですが。 ワークスペースを閉じたり、VC++を終了させたりしてみたのですが駄目でした。 今後VCを使用するにあたり、是非ともこの問題を明確にしたく、質問させて頂きました。 初歩的な質問で誠に恐縮ですが、どなたかお教えください。 宜しくお願い致します。

専門家に質問してみよう