MinGW最新版を使用するとGNU Pascalでリンクエラー

0

    最新版のMinGWをインストール(またはアップグレード)すると、GNU Pascal (gpc) で以下のようなリンクエラーが発生します。

    /mingw/lib/crt2.o:crt1.c:(.text+0x1f1): undefined reference to `__chkstk_ms’
    /mingw/lib/libmingwex.a(glob.o):glob.c:(.text+0x5e3): undefined reference to `__chkstk_ms’
    /mingw/lib/libmingwex.a(glob.o):glob.c:(.text+0×690): undefined reference to `__chkstk_ms’
    /mingw/lib/libmingwex.a(glob.o):glob.c:(.text+0x7e9): undefined reference to `__chkstk_ms’
    /mingw/lib/libmingwex.a(glob.o):glob.c:(.text+0x82d): undefined reference to `__chkstk_ms’
    /mingw/lib/libmingwex.a(glob.o):glob.c:(.text+0xc0d): more undefined references to `__chkstk_ms’ follow
    collect2: ld returned 1 exit status


    「_chkstk」が「__chkstk_ms」に変更になったのが要因だと思います。
    そのため、「Pascal 日和 ホームページ」の「GNU Pascal コンパイラの設定」ページを大幅に修正しました。
    ページ自体も「MinGWの設定(GNU Pascal用)」と「GNU Pascal コンパイラの設定(MinGW版)」に分けました。MinGWとGNU Pascalコンパイラは「C:¥GPC」にマージするようにしました。

    テキストエディタ PSPad の書式設定ファイル。

    0

      海外(チェコ)のフリーのテキストエディタで「PSPad」というのがあります。結構高機能で、メニューも日本語モードにできたり、使いやすいと思います。
      強調表示(構文色分け)についても標準でいろいろ付いていますが、自分で設定することも出来ます。「Pascal日和」の「ダウンロード1」ページに、ISO Pascal、ADW Modula-2、GNAT(Ada)の設定ファイルをアップしました。Free Pascal(Lazarus)はPSPad標準のObject Pascalで対応されています。


      Lazarus Version 1.0.12 – August 26, 2013 リリース

      0

        Lazarus の最新版 Version 1.0.12 がリリースされました。 対応する Free Pascal は 2.6.2 のままです。

        テキストエディタ gPad の Version 2.1.0 がリリースされました。

        0

          フリーのテキストエディタ gPad の Version 2.1.0 がリリースされました。書式設定に関する機能も改善されたため、「ダウンロード1」ページで公開している gPad 用の書式設定ファイル(ISO Pascal, Free Pasca, ADW Modula-2)も gPad Version 2.1.0 用にアップデートしました。
          これまで、文字列中に文字コード5C(¥)が含まれるとC言語などのエスケープ文字として認識し、Pascal系では都合が悪かったのですが、無効化するオプションを要望として出していたところ対応していただけました。感謝です。

          ADW Modula-2 Version 2.74 – August 2, 2013 リリース

          0

            ADW Modula-2 の最新版 Version 2.74 がリリースされました。

            分割コンパイル機能について

            0

              1981年にブライアン・カーニハン(Brian Kernighan)が『Why Pascal is Not My FavoriteProgramming Language』(なぜ私はPascalが嫌いか)というPascal批判の論文を出しています。内容としては具体的なPascalの制約に関するものや、好みの問題と言えるものなどいろいろありますが、大きな制約の一つに分割コンパイルができないというものがありました。しかし、この論文は古いものであり、それ以降にPascal, Modula-2, Adaの標準規格が制定されています。このどれもが分割コンパイルをサポートしています。DelphiやFree Pascalも同様です。逆に単なる分割コンパイルではなく、モジュールのインターフェース部と実現部を分離し、整合性を保証した結合を行うなど安全性も保っています。JavaやC#(.NET Framework)もクラスモジュールのメタ情報を参照し整合性を保っています。アプリケーションの規模がある程度大きくなり、分散開発が必要となる場合、モジュール間の整合性の確認は有効な機能となります。
              C言語は、分割コンパイルされたものを結合する場合、シンボル名(関数名や変数名)が一致すれば型やパラメータが不一致でも結合してしまいます。C++では、それを回避するために、名前空間(Name Space)やマングリング(Name Mangling)を導入しています。
              プログラムの書き方だけではなく、言語処理系のモジュール結合に関する仕組みもアプリケーションの信頼性に大きく影響します。

              AdaのPackageの例

              0

                GNAT(Ada)コンパイラのインストールの説明にパッケージを使用した例をHello2として追加しました。ビルドについてもGPS(GNAT Programing Studio)の例と、コマンドラインビルドの例を載せました。

                GNAT(Ada) for Win32

                0

                  GNAT(Ada)コンパイラのインストールの説明をPascal日和ホームページに載せました。
                  これで、GNU Pascal, Free Pasca, Lazarus, ADW Modula-2, GNAT(Ada) のすべての環境設定の説明が揃いました。日本語のドキュメントが少ないために、はじめてみたいけど今ひとつどうして良いか分からなかった人には参考になるかと思います。

                  ADW Modula-2 for Win32 & Win64

                  0

                    ADW Modula-2コンパイラ(IDE)のインストールの説明をPascal日和ホームページに載せました。
                    Pascalとは違うプログラミング言語です。

                    Pascal日和ホームページの冒頭より:
                    ADW Modula-2 は、商用の Stony Brook Modula-2 としてあったものがフリーウェアとしてリリースされたものです。
                    ISO規格のPart1,2,3すべてに準拠し、ジェネリックとオブジェクト指向に対応しています。その他にADW独自機能の拡張もあります。
                    IDE は Lazarus や Visual Studio などと比較すると貧弱ですが、GUIのIDEで、プロジェクト管理、ソース編集、ビルド、デバッグができます。
                    ちなみに、ISO規格以前の Modula-2 の文法やライブラリを PIM と言いますが、これはヴィルト氏の著書「PROGRAMMING IN MODULA-2」の名前から来ています。PIMにも4つのエディション(PIM, PIM2nd, PIM3rd, PIM4th)があり、少しずつ改定されています。日本では、1986年に日本コンピュータ協会から「Modula-2 プログラミング[改訂第3版]」がPIM3rdの邦訳として出版されています。
                    日本で Modula-2 の書籍がいろいろ出版されたのはほとんどが1980年代で、内容は PIMエディションのどれかです。または、商用製品の Logitech Modula-2 の解説書籍などです。Logitech Modula-2 は日本でもDOS版が発売されたので、持っていた人もいらっしゃるかと思います。1990年代になると、日本は C/C++言語ブームとなり、 Modula-2 や Pascal の書籍は出なくなりました。ISO Modula-2 や ISO Pascal の日本語の書籍はたぶんないと思います。商用の Delphi の書籍はしばらく出ましたが、現在は少なくなりました。その後、Java、.NET Framework、Web開発と、そちらの需要が高く、Modula-2 や Pascal を取り上げる書籍はありません。
                    ISO Modula-2 は Part 1 の段階で例外処理に対応しているので、例外の捕捉ができます。
                    モジュールプログラミング、ジェネリックモジュール、クラス定義、例外捕捉、ソースコードの大文字小文字区別、定義モジュール、実現モジュールの分離、制御文は必ず'END'で閉じるなど、文法は、ISO 拡張 Pascal より強力だと思います。個人的には、Pascal言語より Modula-2言語の方が好き(おもしろい)です。実用面ではやはり Free Pascal (Lazarus) ですが。

                    Lazarus for Win32 & Win64

                    0

                      Free Pascalに続き Lazarusのインストールと設定の説明をPascal日和ホームページに載せました。同一PC上に、Win32版とWin64版を同居させる方法も示しています。

                      calendar
                            1
                      2345678
                      9101112131415
                      16171819202122
                      23242526272829
                      3031     
                      << August 2020 >>