◀Unicode版開発トップへ
  • 1925 MinGW環境コンパイルエラー
    • 1926 Re:MinGW環境コンパイルエラー
      • 1927 Re2:MinGW環境コンパイルエラー
        • 1928 Re3:MinGW環境コンパイルエラー
          • 1929 Re4:MinGW環境コンパイルエラー
          • 1930 Re4:MinGW環境コンパイルエラー
            • 1931 Re5:MinGW環境コンパイルエラー
              • 1932 Re6:MinGW環境コンパイルエラー
                • 1933 Re7:MinGW環境コンパイルエラー
                  • 1934 Re8:MinGW環境コンパイルエラー
                    • 1935 Re9:MinGW環境コンパイルエラー
                    • 1936 Re9:MinGW環境コンパイルエラー
                      • 1939 Re10:MinGW環境コンパイルエラー
                        • 1942 Re11:MinGW環境コンパイルエラー
                          • 1944 Re12:MinGW環境コンパイルエラー
  • [1925] MinGW環境コンパイルエラー novice 2013年04月28日 22:09

    MinGW環境だとコンパイルエラーになります。

    438のパッチの変更だと思いますが、
    http://sourceforge.net/p/sakura-editor/patchunicode/438/

    _NUM_TO_STR/NUM_TO_STRマクロを処理できないようです。
    • [1926] Re:MinGW環境コンパイルエラー Uchi 2013年04月29日 06:51

      ▼ noviceさん
      > MinGW環境だとコンパイルエラーになります。
      >
      > 438のパッチの変更だと思いますが、
      > http://sourceforge.net/p/sakura-editor/patchunicode/438/
      >
      > _NUM_TO_STR/NUM_TO_STRマクロを処理できないようです。

      CDlgAbout.cppはコンパイル出来ているでしょうか?
      出来ているならば、makefileの414行目
      $(RC) --language=0411 sakura_grc.rc -o $@
      に
      --preprocessor 'gcc -E -x c++ -DRC_INVOKED'
      を追加すればコンパイルできると思うんですが如何でしょうか?
      • [1927] Re2:MinGW環境コンパイルエラー novice 2013年04月29日 10:20

        ▼ Uchiさん
        > CDlgAbout.cppはコンパイル出来ているでしょうか?

        CDlgAbout.cppはコンパイルが通りました。


        > 出来ているならば、makefileの414行目
        > $(RC) --language=0411 sakura_grc.rc -o $@
        > に
        > --preprocessor 'gcc -E -x c++ -DRC_INVOKED'
        > を追加すればコンパイルできると思うんですが如何でしょうか?

        追加しても変わりませんでした。
        エラーメッセージは下記の通りです(追加ありなしで同じ)。

        sakura_grc.rc:2518:51: エラー: マクロ "_NUM_TO_STR" に引数が 4 渡されましたが、1 しか受け取りません
        sakura_grc.rc:2524:54: エラー: マクロ "_NUM_TO_STR" に引数が 4 渡されましたが、1 しか受け取りません
        • [1928] Re3:MinGW環境コンパイルエラー Uchi 2013年04月29日 12:17

          Patchunicode#469に問題のマクロを削除した版を上げました。
          プリプロセッサはc++と同じ物を使ってる筈なんですけどね。
          確認よろしくお願いします。
          • [1929] Re4:MinGW環境コンパイルエラー novice 2013年04月29日 13:03

            ▼ Uchiさん
            > Patchunicode#469に問題のマクロを削除した版を上げました。
            > プリプロセッサはc++と同じ物を使ってる筈なんですけどね。
            > 確認よろしくお願いします。

            コンパイルは通ったのですが、気になるところがあります。
            下記を見ると、文字列の最後に\0をつける必要がありそうです。
            http://support.microsoft.com/kb/237870/ja

            試しに
            #define PR_VER_STR "2,0,7,1\0"
            のようにすると、リビジョンが表示されなくなります。
            (終端文字なので当然の結果ですが...)
          • [1930] Re4:MinGW環境コンパイルエラー aaa 2013年04月29日 13:26

            ▼ Uchiさん
            > Patchunicode#469に問題のマクロを削除した版を上げました。
            > プリプロセッサはc++と同じ物を使ってる筈なんですけどね。
            > 確認よろしくお願いします。
            マクロ定義が間違っているから、コンパイルできなくてもしょうがないのだが。
            ↓こうすれば通るはず
            #define _NUM_TO_STR(...) #__VA_ARGS__
            #define NUM_TO_STR(...) _NUM_TO_STR(__VA_ARGS__)
            • [1931] Re5:MinGW環境コンパイルエラー novice 2013年04月29日 14:17

              ▼ aaaさん
              > マクロ定義が間違っているから、コンパイルできなくてもしょうがないのだが。
              > ↓こうすれば通るはず
              > #define _NUM_TO_STR(...) #__VA_ARGS__
              > #define NUM_TO_STR(...) _NUM_TO_STR(__VA_ARGS__)

              コンパイルできました。
              また、最初の引数は可変引数でなくても大丈夫でした。
              #define _NUM_TO_STR(...) #__VA_ARGS__
              #define NUM_TO_STR(n) _NUM_TO_STR(n)

              マクロ展開は下記のようになっているのではないかと。
              NUM_TO_STR(FL_VER)
              ->
              _NUM_TO_STR(2,0,7,1)
              ->
              "2,0,7,1"
              • [1932] Re6:MinGW環境コンパイルエラー もか 2013年04月29日 16:16

                可変長引数マクロって何かあって、使わないようにしてませんでしたっけ?
                現在は無視されてるVC2002/VC2003対応だったかな。
                • [1933] Re7:MinGW環境コンパイルエラー novice 2013年04月29日 17:06

                  ▼ もかさん
                  > 可変長引数マクロって何かあって、使わないようにしてませんでしたっけ?
                  > 現在は無視されてるVC2002/VC2003対応だったかな。

                  過去ログを見ると、
                  >>unicode:49
                  で議論されていました。

                  また、VC2005からコンパイラが対応しているようです。
                  http://msdn.microsoft.com/ja-jp/library/vstudio/ms177415%28v=vs.80%29.aspx

                  VC2003で試してみましたが、エラーになりました。
                  • [1934] Re8:MinGW環境コンパイルエラー Uchi 2013年04月29日 19:03

                    CDlgAbout.cppも同様に修正した物を上げました。

                    versionでの最後の"\0"に関しては不要と考えています。
                    Windowsのリソースの文字列はPascal風の文字列長と丁度その長さの文字列で出来ています。
                    リソースから文字列を取り出さない限り問題ないです。
                    例示で上げているのはリソースを操作するので必要になっています。

                    問題なのはVersionリソースよりもString Tableの方かな?
                    確認して見ます。
                    • [1935] Re9:MinGW環境コンパイルエラー Uchi 2013年04月29日 19:53

                      ▼ Uchiさん
                      > 問題なのはVersionリソースよりもString Tableの方かな?
                      > 確認して見ます。
                      自己レス
                      String TableはWindows APIで面倒を見てるんで問題は無い様です。
                    • [1936] Re9:MinGW環境コンパイルエラー novice 2013年04月29日 20:17

                      ▼ Uchiさん
                      > versionでの最後の"\0"に関しては不要と考えています。
                      > Windowsのリソースの文字列はPascal風の文字列長と丁度その長さの文字列で出来ています。
                      > リソースから文字列を取り出さない限り問題ないです。

                      承知しました。
                      • [1939] Re10:MinGW環境コンパイルエラー もか 2013年04月29日 21:57

                        MinGWでコンパイルできるのだから、VC2003でもソリューションファイルかmakefileさえあれば、コンパイルできたりします?
                        #VC2003/2002は持ってないのでやれませんけど
                        • [1942] Re11:MinGW環境コンパイルエラー novice 2013年04月30日 13:57

                          ▼ もかさん
                          > MinGWでコンパイルできるのだから、VC2003でもソリューションファイルかmakefileさえあれば、コンパイルできたりします?
                          > #VC2003/2002は持ってないのでやれませんけど

                          試してみました。
                          一部を除いてほぼコンパイルは通るようです。
                          • [1944] Re12:MinGW環境コンパイルエラー novice 2013年04月30日 16:15

                            ▼ noviceさん
                            > ▼ もかさん
                            > > MinGWでコンパイルできるのだから、VC2003でもソリューションファイルかmakefileさえあれば、コンパイルできたりします?
                            > > #VC2003/2002は持ってないのでやれませんけど
                            >
                            > 試してみました。
                            > 一部を除いてほぼコンパイルは通るようです。

                            プログラムの作成までできたので、下記にパッチを置きました。
                            http://sourceforge.net/p/sakura-editor/patchunicode/37/

                            プロジェクトファイルは、sakura.vcprojを一部書き換えたものを使用しているので若干怪しいです。
                            #Version="7.10"に書き換えました。

                            プログラムサイズが若干小さくなりました(1,171,456byte)。
                            実行してみましたが、普通に動作しているようです。
                            (動作するのは当たり前かもしれませんが)

                            サクラエディタ Ver. 2.0.7.1 (r2948)

                            Share Ver: 129
                            Compile Info: V1310 WR WIN500/I501/C000/N500
                            Last Modified: 2013/4/30 16:03:51