問題タブ [gnat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compilation - 誤った出力を伴う単純な Ada プログラム
Ada の完全な初心者はこちら。ここから簡単な Ada プログラムをコンパイルして実行しようとしています: http://www.dwheeler.com/lovelace/s1sf.htm
コードは次のとおりです。
私は Linux を使用しており、gnat を使用しています。
これにより、実行可能ファイルが得られます。実行可能ファイルを実行すると、X を 1 に初期化するように指示されているにもかかわらず、X を 0 に初期化するように見えるため、ゼロのリストが表示されるため、リスト 1,2,4,... を取得する必要があります。
私のコードまたは私の考えが間違っている場所を誰かが説明できますか? ああ、gnat を使用して、単一のコマンドで実行可能ファイルをコンパイルして作成する方法はありますか?
windows - Windowsおよび-gnatPスイッチでのタスク
-gnatP(非同期タスク操作のポーリングを有効にする)スイッチとの関係は何ですか?
私はGNATを使用してかなり大規模なゲームプロジェクトに取り組んでおり、ドキュメントには、このスイッチがWindowsNTでさまざまな非同期タスク操作を可能にするために必要であると記載されています。私のプロジェクトは非常に多くのタスクを使用するため、実際にこのスイッチが必要かどうかを判断しようとしています。
私が判断できないのは、このコンテキストでの「Windows NT」が、特にWindows NTを指しているのか、NTベースのシステムを指しているのかということです。このトピックに関する私の検索は空白になりました。
ポーリングコードを含めるとプロジェクトの実行時のパフォーマンスに深刻な影響を与えるため、これは私にとって問題です。それがなくてもすべてが正しく機能しているように見えますが、私は広範囲にテストする時間がありませんでした。そして、私が気付いていない何かが最終的に私を噛むのではないかと心配しています。
要約すると、Windowsシステムでのタスクには-gnatPがまだ必要ですか?もしそうなら、ポーラーを手動で呼び出して、少なくともある程度制御できるようにする方法はありますか?
oop - リテラル文字列の予想されるエラー
次のコードを見てください
GPS IDE で [すべてビルド] をクリックすると、このエラーが発生します
ご覧のとおり、これは私の最初のプログラムです。助けてください。
size - gnat 4.4 で Ada に列挙型の最小仕様サイズを強制的に使用させる
4 ビットである必要がある列挙型がありますが、その型の変数を宣言すると、コンパイラはその変数に 8 ビットを割り当てます。
以下は、コードの簡略化されたバージョンです。
これはすべて、以前の gnat バージョンでは機能しましたが、gnat 4.4.6 では機能しませんでした。gnat が Ada 仕様に準拠していることは理解しています。
上記の例の AB_var を強制的に 4 ビットにする方法はありますか? 「Object_Size を試しましたが、8 ビットの倍数である必要があります。
ada - win32 を使用して AdaGIDE でコンパイルするとエラーが発生する
AdaGIDE コンパイラとそのライブラリで問題が発生しています。Windows XP に GNAT 2013 と AdaGIDE 7.45 をインストールしました。win32 を必要とするコードをコンパイルしようとすると (例: with win32.winnt;
)、AdaGIDE のコンソールにfile "win32.ads" not found
.
私はウェブを検索し、これを見つけ、指示に従い、win32 パッケージをインストールし、setpath.bat を実行しました。見つけたすべての GNAT フォルダーにライブラリをコピーしようとしましたが、何も機能しませんでした。win32.ads をプログラムのフォルダーにコピーすると、さらに多くのライブラリが必要になるため、それらすべてをプログラム ディレクトリにコピーするのもあまり良い考えではないと思います。
誰もこの問題に対処する方法を知っていますか?
- 編集 -
私は AdaGIDE の作成者と少し話をしましたが、私がしなければならなかったのは、[ツール] -> [現在のディレクトリのプロジェクト設定] で [コンパイラ オプション] を次のように設定することだけでした。
-Ic:\GNAT\2012\include\win32ada -Ic:\gnat\2012\lib\win32ada\static
c:\GNAT\2012\include\win32ada は Win32Ada をインストールした場所\static\
ですlibwin32ada.a
。
残念ながら、新しいプロジェクトごとに繰り返す必要があります。