問題タブ [gnu]

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 投票する
2 に答える
201 参照

gnu - HP-UXでのGNUソフトウェアのコンパイル。yy*記号の問題

HP-UX(binutilsなど)でGNUソフトウェアをコンパイルしようとすると、満たされていないシンボルyyfnd、yyextra、yytextuc、yyolsp..に関するエラーメッセージが表示されます。

一部のソフトウェアはHP-UX独自のlexを使用してコンパイルできないため、PATHにbyaccおよびflex実行可能ファイルを含めました。HP-UX lexの問題ですか?それを修正する方法は?

0 投票する
4 に答える
1467 参照

makefile - 再帰ビルドでコマンドライン変数の割り当てを無視するにはどうすればよいですか?

2 つのビルド システムを結合しようとしています。どちらも再帰的です (makefile のルールは make を使用して他の makefile を呼び出し、プロジェクトのコンポーネントをビルドします)。

これらを「A」と「B」と呼びます。「A」はアプリケーションをビルドし、「B」は「A」が使用するライブラリをビルドします。

A の最上位の makefile は、'make TARGET=whatever' を呼び出します。これは、ビルドの再帰的に呼び出されるすべてのビットが、TARGET の値を読み取り専用変数として継承することを意味します。再帰ビルド。

「B」(別のプロジェクトからのもの) のビルド システムでこれが発生することを望んでいません。そこのメイクファイルは TARGET を独自の目的で使用し、TARGET の値が間違っていて読み取り専用であるためビルドが失敗するためです。

これに対する解決策は 2 つしかありません。

1) TARGET を設定する A の makefile とそれを使用する A の makefile で TARGET の名前を別の名前に変更して、ビルド システムの下位レベルとの衝突を回避します。

2) TARGET 変数が設定されている B の makefile のどこでも 'override' ディレクティブを使用して、その読み取り専用ステータスをオーバーライドします。

誰もがより良いアイデアを持っていますか? - 理想的には、A から B ビルド システムに明示的に渡すオプションを除いて、A から B のビルド システムに何も継承されないようにします。

ちなみにGNU Make v3.80を使っています。

0 投票する
11 に答える
31676 参照

c - 「cc」対「gcc」としてGCCを呼び出す

ほとんどのGNU/Linuxシステムでは、GCCはコマンドラインから(「gcc」ではなく)「cc」という名前で呼び出すことができることを知っています。ある方法で呼び出された場合と他の方法で呼び出された場合のGCCの動作に違いはありますか?

たとえば、「gcc」ではなく「g ++」という名前でGCCを呼び出すと、GCCの動作が異なることを知っています(.cファイルをC++ソースおよびリンクとして扱います-C++標準ライブラリ内)。「gcc」と「cc」の動作に同様の違いはありますか?

編集:これまでに受け取った回答のいずれも、GCCが一方の方法で呼び出された場合と他方の方法で呼び出された場合に異なる動作をするかどうかについて決定的な「はい」または「いいえ」を示しませんでした。しかし、その振る舞いをチェックするためにソースに飛び込むために与えられたアイデアは、私をその道へと導きます。私がそこで見つけたものに基づいて、私は今、答えは次のとおりであると信じています。

いいえ。GCCは、「gcc」または「cc」のどちらを介して呼び出されたかに関係なく、同じように動作します。

0 投票する
3 に答える
2763 参照

linux - 関連ファイル内の新しいリリースのバージョン番号のバンピング(ドキュメント)

新しいリリースの問題のバージョン番号の急上昇にどのように対処するかを知りたいと思います。

マニュアルページなどの関連ファイルのバージョン番号をどのように処理しますか。

ソフトウェアはgnuツールチェーンで構築されているため、autoconf、automakeなどが利用可能であり、アプリケーションのバージョン番号に使用されます。情報を再利用できるようにします。

gitはvcsとして使用されます。

1つの可能性は、関連するすべてのファイルのバージョン番号と日付を置き換えるためにsed/awkを実行するMakefile.amに追加の新しいターゲットを導入することです。そのターゲットは、新しいリリースの開発の開始時(分岐直後)に一度呼び出すことができます。

次に、人々がプロジェクトのgitクローンを作成するとき、またはリリースtarballが実行されるときに、プロジェクトは正しい情報でビルドできます。もちろん、新しいリリースの開発を開始するときは、このmakeターゲットを実行することを忘れないでください。

もう1つのオプションは、sed / awkをdistターゲットのフックで置き換えることですが、これにより、プロジェクトのgitリポジトリが、関連付けられたファイルに正しいバージョン番号が関連付けられていない状態になります。

git履歴内に正しいバージョン番号も記録されるため、最初のソリューションを実行することをお勧めします。

sed / awkの置換を行うときは、「ファイル内」で行うか、autoconf/automakeツールのようにファイル内のテンプレートを使用するかを選択します。どちらの方法にも長所と短所があります。

関連ファイルのバージョン管理をどのように処理しますか。開発フェーズの開始時に変更しますか、出荷直前に変更しますか、ファイル内置換を行いますか、それともテンプレートを使用しますか?

THX。

0 投票する
4 に答える
3409 参照

windows - Windows 開発者が使用するオープン ソース ライブラリ DLL をビルドする最良の方法は何ですか?

Linux および OSX で GNU ツールチェーン (automake、conf、flex、bison、gcc など) を使用して開発した C フリー ソフトウェア/オープン ソース ライブラリがいくつかありますが、Windows DLL を提供するように要求されることがあります。Windows Visual Studio の開発に多くの時間とお金を費やすことなく、それらを提供できるようにしたいと考えています。私は Windows XP 仮想マシンを利用できます。また、Windows に組み込むためのパッチをときどき入手するので、ソフトウェアが移植可能であることも知っています。

どのアプローチまたはツールを使用する必要がありますか? Linux でのクロスコンパイル? Visual Studio Express などを使用していますか? SVN リポジトリから完全に自動化されたものを好むでしょう。リンクとDLLの問題を理解している限り、cygwinはWindows開発者が必要とするものを提供していないように見えるため、解決策として数えません。

0 投票する
3 に答える
4673 参照

c++ - configureスクリプトに依存関係をチェックさせる方法

プロジェクトをビルドするために、autoconfを使用してconfigureスクリプトを生成しました。

必要なライブラリがインストールされていない限り、正常に動作します。一部のファイルが不足している場合はエラーが返されますが、実際にはconfigureスクリプトで確認する必要がありますか?

だから私の質問は:依存関係を探してユーザーにそれが欠けているライブラリを伝えるためにautoconfで生成されたスクリプトを変更する方法は?

0 投票する
6 に答える
726 参照

windows - GNU CC と Windows

Windows で GNU CC を使用するためのオプションについて少し混乱しています。

(GUI アプリではなく) 主にコンソール アプリケーションを開発したい場合、何が必要ですか? Cygwin と MinGW はどこで計算されますか? たとえば、NetBeans IDE C/C++ オプションを使用する場合、Cygwin をインストールする必要があります。

Cygwin を使用せずにコンソール アプリケーションを開発できるオプションはありますか?

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

makefile - Autotools ライブラリとオブジェクト ファイルの出力制御

私の目標は、すべてのオブジェクト ファイルを Makefile のルートではなく .objs ディレクトリに構築し、バイナリ (およびライブラリ) をプロジェクトのbin/ディレクトリにコピーすることです。しかし、これを行う方法を説明するリソースを見つけることができませんでした。どうすればこれを行うことができますか?

これが私の configure.ac とsrc/Makefile.amです - 参照されている 2 つの共有ライブラリ用の同様の Makefile.am ファイルがあります。それらはコンパイルされ、それらをbin/ディレクトリにコピーした後、正常に動作します。私はこのプロセスを自動化しようとしています。

configure.ac

src/Makefile.am

したがって、私の質問は、各 Makefile のコンパイル結果の出力ディレクトリを指定する方法です (それらをbin/にコピーし、オブジェクト ファイルをMakefile のルートではなく各プロジェクトの.objに配置することを希望します)。 .

これまでご協力いただきありがとうございました.このウェブサイトは素晴らしいリソースであり、すでに提供されているリンクから多くのことを学びました.