◀Unicode版開発トップへ
  • 9 VS2005コンパイル環境について
    • 19 Re:VS2005コンパイル環境について
    • 37 Re:VS2005コンパイル環境について
      • 39 Re2:VS2005コンパイル環境について
        • 41 Re3:VS2005コンパイル環境について
  • [9] VS2005コンパイル環境について ryoji 2007年11月14日 22:52

    VS2005 Team Editionを使ってコンパイルを試してみました。

    ソースに変更を加えてビルド後、実行しようとすると、
    「プロジェクトは変更されています。ビルドしますか?」のダイアログが表示されますね。
    その後は何も修正しなくても同様に毎回ダイアログが表示されてちょっとうるさい感じです。

    リソースエディタを使ってリソース編集してビルドすると、
    sakura_rc.rc(106) : error RC2104 : undefined keyword or key name: F_FILENEW
    のエラーになります。
    リビルドしてもエラーが消えません。

    あと、>>dev:5073に記載したように埋め込みマニフェストはOFFの設定でお願いします。
    • [19] Re:VS2005コンパイル環境について kobake 2007年11月16日 02:12

      ▼ ryojiさん
      > リソースエディタを使ってリソース編集してビルドすると、
      > sakura_rc.rc(106) : error RC2104 : undefined keyword or key name: F_FILENEW
      > のエラーになります。
      > リビルドしてもエラーが消えません。

      sakura_rc.rc を修正しました。
      まだ共同コーディング (コミット) が始まってないので、
      勝手ながら直接コミットさせていただきました。変更行は1行だけです。

      前は funccode.h がインクルードされていたのを funccode_define.h に変更したのですが、
      直接の #include行だけしか変更してなくて、
      リソースエディタで編集するとインクルードが元に戻っちゃってました。
      TEXTINCLUDE 部分の書き換えで対応。

      今回は試しに、Subversionのコミットコメントを日本語で書いてみました。
      参考: http://sakura-editor.wiki.sourceforge.net/RepoCommit#tocRepoCommit10
      SVN Browseではちゃんと表示されてます。
      http://sakura-editor.svn.sourceforge.net/viewvc/sakura-editor/sakura/branches/unicode/sakura_core/
      #コメント長すぎですかね?
    • [37] Re:VS2005コンパイル環境について kobake 2007年11月18日 19:00

      ▼ ryojiさん
      > ソースに変更を加えてビルド後、実行しようとすると、
      > 「プロジェクトは変更されています。ビルドしますか?」のダイアログが表示されますね。
      > その後は何も修正しなくても同様に毎回ダイアログが表示されてちょっとうるさい感じです。

      こちらの環境は Visual Studio 2005 Standard Edition です。

      とりあえずプロジェクトをゼロから作り直してみて原因を追究したところ、
      埋め込みマニフェストを「いいえ」にした所でこの現象が発生しているようでした。


      ~以下は Debug_Ansi モードでビルドした場合の例です。~

      埋め込みマニフェストOFFの場合
      ・ビルドする
       ↓
      ・以下2ファイルが生成される
       sakuraW_Ansi.exe.intermediate.manifest
       sakuraW_Ansi.exe.manifest
       ↓
      ・ソースをいじる
       ↓
      ・ビルドし直す
       ↓
      ・sakuraW_Ansi.exe.intermediate.manifest は更新される
      ・sakuraW_Ansi.exe.manifest は更新されない
       ↓
      ・いじったソースのほうが sakuraW_Ansi.exe.manifest より更新日時が新しいので、
       「再ビルド要」と判定される


      埋め込みマニフェストONの場合
      ・ビルドする
       ↓
      ・以下2ファイルが生成される
       sakuraW_Ansi.exe.intermediate.manifest
       sakuraW_Ansi.exe.embed.manifest
       ↓
      ・ソースをいじる
       ↓
      ・ビルドし直す
       ↓
      ・sakuraW_Ansi.exe.intermediate.manifest は更新される
      ・sakuraW_Ansi.exe.embed.manifest は更新されない
       ↓
      ・更新日時の比較は sakuraW_Ansi.exe.embed.manifest に対しては行われない。
       (マニフェストはexeに埋め込まれているため?)
       sakuraW_Ansi.exe のほうがソースより更新日時が新しいので「再ビルド不要」と判定される。


      埋め込みマニフェストをOFFにするしか対応策が見つかりませんでした。
      どう対応するのが良いか、ご存知の方いらっしゃいましたら、
      アドバイスいただけると助かります。


      #今日の日付で、この問題を修正した旨のコメントで vcproj と sln をコミットをしましたが、
       勘違いでした、直ってなかったです、すみません。
      • [39] Re2:VS2005コンパイル環境について ryoji 2007年11月18日 22:53

        > とりあえずプロジェクトをゼロから作り直してみて原因を追究したところ、
        > 埋め込みマニフェストを「いいえ」にした所でこの現象が発生しているようでした。
        [リンカ]
        -[マニフェストファイル]
        -[マニフェストの生成]:はい
        -[マニフェストファイル]:$(TargetPath).manifest
        [マニフェストツール]
        -[入力と出力]
          -[埋め込みマニフェスト]:いいえ
        -[マニフェストファイル]:$(TargetPath).manifest
        と設定すればうまくいくような気がします。
        • [41] Re3:VS2005コンパイル環境について kobake 2007年11月19日 01:57

          ▼ ryojiさん
          > > とりあえずプロジェクトをゼロから作り直してみて原因を追究したところ、
          > > 埋め込みマニフェストを「いいえ」にした所でこの現象が発生しているようでした。
          > [リンカ]
          > -[マニフェストファイル]
          > -[マニフェストの生成]:はい
          > -[マニフェストファイル]:$(TargetPath).manifest
          > [マニフェストツール]
          > -[入力と出力]
          >   -[埋め込みマニフェスト]:いいえ
          > -[マニフェストファイル]:$(TargetPath).manifest
          > と設定すればうまくいくような気がします。

          アドバイスありがとうございます。
          リンカ側の出力マニフェストファイル指定が「$(TargetPath).intermediate.manifest」になっていたのが
          問題の原因でした。「$(TargetPath).manifest」に変更することで問題が解決しました。

          修正したものをコミットしました。
          今回移行は直接コミットせずにパッチを介します。