問題タブ [m4]

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.

0 投票する
1 に答える
543 参照

c++ - メタ プログラミングとランタイム コードの生成

実行時に関数の引数を生成する必要があるという要件があります。コンパイル時には、引数の数や型はわかりません。実行時にファイルから読み取り、コードを生成して動的にロードする必要があります。

以前、M4 マクロ生成言語を使用したことがあります。読みやすさと使いやすさを犠牲にして、優れたパフォーマンスを提供します。

今回はその道を行きたくなかったので、C++11 Variadic テンプレートを使用することを考えていました。

より良い代替手段はありますか?

0 投票する
1 に答える
429 参照

m4 - 文字列比較とマクロ OR 条件

M4 言語で、文字列引数を 2 つの値と比較し、それらの 2 つの値のいずれかが一致する場合、X が実行され、他の Y が実行される方法はありますか?

たとえば、MACTEST マクロへの引数が 'ABC' または 'XYZ' の場合、'match' が表示され、それ以外の場合は 'nomatch' が表示されます...eval は、文字列ではなく数値引数を比較するためのもののようです..ありますか?文字列に相当するものは?

0 投票する
1 に答える
678 参照

m4 - varargs を受け入れる M4 マクロを定義するにはどうすればよいですか?

可変数の引数を受け入れて各引数を処理する M4 マクロを定義するにはどうすればよいですか? 「shift」および「foreach (例から)」マクロを見てきましたが、それらを使用して独自のマクロをまとめることができないようです。助けてくれてありがとう。

0 投票する
2 に答える
152 参照

macros - m4マクロで最後の引数を参照する方法

m4 マクロで与えられた引数リストの最後の引数をどのように参照しますか? 最後の引数を取得し、それに基づいてマクロ展開を生成する必要があります。

0 投票する
0 に答える
117 参照

macros - マクロの引数を確認するには?

他のマクロの定義でマクロの引数を参照するには?

たとえば、FOO(abc) はマクロです。最初に FOO の引数をチェックし、「abc」の場合は 1 行に展開し、そうでない場合は別の行に展開する他のマクロ「BAR」を書きたいとします。

BAR(if FOO_arg が abc の場合) {これを行う} else {これを行う}

m4マクロを使用してどのように達成できますか?

0 投票する
1 に答える
2292 参照

autotools - python2 および python3 の AM_PATH_PYTHON

変数AM_PATH_PYTHONを見つけるためにautomakeのマクロを使用しています。pythondir

これまで、引数なしで呼び出してきましたが、デフォルトは Ubuntu の python 2.7 です。python3.x今、私も(特に3.3)のためにそれを構築したいと思います。

AM_PATH_PYTHON([3])getを呼び出し、特定の変数を使用しpython3.3て生成されたすべての変数を保存し、forを呼び出す方法はありますか。AC_SUBSTpython3AM_PATH_PYTHON([2])python2

私はこれをやっています

これらすべてを行った後でも、2番目AM_PATH_PYTHONは変数を書き換えていません。これらがマクロであることは知っていますが、これを行う方法があるはずです。Makefileが示しています

0 投票する
1 に答える
395 参照

fortran - カスタム .m4 マクロが configure.ac で機能しない

.configure スクリプトを使用して簡単にインストールできるようにすることで、難解な科学 F77 プログラムを現代の世界に更新しようとしています。ただし、これは宣伝されているよりも難しいことが証明されています。私が 21 世紀に引きずり込んでいるプログラムには、SuperMongo プロット ライブラリが必要です。必要な SuperMongo ライブラリ (libplotsub.a、libdevices.a、および libplotsub.a、libdevices.a、およびlibutils.a) 親切な魂にコードの中身を見てもらうのではなく、スケルトン github リポジトリ ( https://github.com/Acetylene5/autoconf_testing ) を作成しました。

メイン プログラムは test.f で、junk.f ファイルを呼び出します。どちらのファイルにも、Stuff.com 共通ブロックが含まれています。ファイル jump.f は 2 つの関数を呼び出します。1 つ (dcopy) は LAPACK ライブラリからのもので、もう 1 つ (drawcurs) は SuperMongo プログラムからのものです。私がこれを行った理由は、私が石器時代から早送りしているこのプログラムがこれらの両方のライブラリを使用しているためです。

インターウェブで LAPACK マクロ (ax_lapack.m4) を見つけました。これは、私のシステムで LAPACK ライブラリを見つけているようです。この .m4 ファイルを ax_supermongo.m4 にコピーして、必要な名前とディレクトリを変更しようとしました。ただし、私は M4 の専門家ではないため、これが私の意図どおりに機能しているかどうかはわかりません。./configure の出力を見ると、sm_graphics ファイル (ax_supermongo.m4 によって SM ライブラリの場所に使用されるトークン supermongo ルーチン) が見つからないように見えるため、そうではないと思います。

私のシステムでは、Supermongo ライブラリは /usr/local/misc/sm/sm2_4_36/lib/ にあります。

autoconf を取得してこのディレクトリを調べる方法、またはコマンドライン変数を使用してここにディレクトリを渡す方法に関する提案はありますか?

さらに情報が必要な場合はお知らせください。

ケーシー

0 投票する
1 に答える
2700 参照

ocaml - ocamlfind.1.3.3 configure のインストール中にエラーが発生しました: m4 が PATH にありません。これは必須です

構成: m4 が PATH にありません。これは必須です

どうすればこれを修正できるのだろうか。

どうもありがとう!(m4フォルダーをそのパスにコピーしようとしましたが、機能していません)