問題タブ [compilation]
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.
c++ - Linux 用の最小限の C++ make ファイル
g ++を使用して単一のファイルとhファイルをコンパイルおよびリンクする、Linux用の単純で推奨される「最小限の」c ++ makefileを探しています。理想的には、make ファイルには物理ファイル名さえ含まれず、.cpp から .o への変換のみが含まれます。autoconfの恐怖に飛び込むことなく、そのようなmakefileを生成する最良の方法は何ですか?
現在のディレクトリには、たとえば
t.cpp 番目
そのためのメイクファイルを作成したいと思います。autoconf を試しましたが、.h が g++ ではなく gcc であると想定しています。はい、初心者ではありませんが、私は何年も前にプロジェクトを操作するための最良のアプローチを再学習しているため、小さなプロジェクトのメイクファイルを自動的に作成および維持する方法を探しています。
python - cygwin で wxPython をどのようにコンパイルしますか?
CYGWIN をプラットフォームとして使用しており、wxPython を使用したいと考えています。ソースをコンパイルして cygwin で動作させる方法はありますか?
optimization - 部品最適化のためのマクロまたはテクニックはありますか?
g++ コンパイラを使用してロック フリー構造に取り組んでいます。-o1 スイッチを使用すると、g++ がコードの実行順序を変更するようです。コードの特定の部分で g++ の最適化を禁止し、他の部分の最適化を維持するにはどうすればよいですか? 2 つのファイルに分割してリンクできることはわかっていますが、見栄えがよくありません。
c++ - C++ のコンパイルに時間がかかるのはなぜですか?
C# や Java と比較すると、C++ ファイルのコンパイルには非常に長い時間がかかります。C++ ファイルのコンパイルには、通常のサイズの Python スクリプトを実行するよりもかなり長い時間がかかります。現在VC++を使用していますが、どのコンパイラでも同じです。どうしてこれなの?
私が考えることができる 2 つの理由は、ヘッダー ファイルの読み込みとプリプロセッサの実行でしたが、それだけでは時間がかかる理由を説明できるようには思えません。
perl - このPerlBEGINブロックがデバッガーで異なる動作をするのはなぜですか?
デバッガーの外部で正常に実行されるPerlコードがいくつかあります。
しかし、デバッガー内で実行すると、次のようになります。
動作が異なります。
問題のファイル(いくつかあります)は、大規模なPerlモジュール(約2万行のコード)のテストスイートの一部です。テストはコンパイル時に多くのセットアップ作業を行い、BEGINブロックを使用します。最小限の複製コードを次に示します。
それを入れてsomefile.pl
実行すると、期待通り「OK」と表示されます。を使用してデバッガーで実行すると、次のperl -d somefile.pl
エラーで終了します。
結果として$@
、コードがデバッガーで実行される場合、それはオブジェクトではありません。代わりに、これは次の文字列を含む祝福されていないスカラーです。
(内部の改行と間隔は保持されます。これは文字通りのテキストであり、「...」も含まれます。)
デバッガーで実行するには、このようなコードが必要です。テストスイートでデバッガーを使用することは、私のワークフローの重要な部分です。モジュールは例外オブジェクトを使用し、コンパイル時に多くのことを実行し、スローされたオブジェクトがキャッチされたときにオブジェクトであると想定します。
私の質問は(最後に)これです:どうすればこれを機能させることができますか?回避策はありますか?これはperlデバッガモジュールのバグですか?これを解決するための最善の方法は何ですか?(私はそれがいくつかの質問であることを知っていますが、それらはすべて関連しています。)
Mac OSX10.5.5でperl5.10.0を使用しています。
Adam Bellaireによって提案されたdieLevelのことは有望に見えました、そして確かに何か(何を見つけることができないか)が私にとってそれを1に設定しています。しかし、~/.perldb
ファイルを使用して0に設定すると、問題が解決しません。実際、関連する3つの設定すべてを0に設定しました。私の~/.perldb
ファイル:
o
デバッガーでコマンドを実行して、設定が有効になっていることを確認しました。perl -de 0
実行時と実際のファイルの実行時に、すべて0に設定されているのがわかりsomefile.pl
ます。
ありがとう、ブライアン。以前perlbug
はバグ(RT 60890local $SIG{'__DIE__'}
)を報告していましたが、コード内の適切な場所すべてに散らばり始めました。(バグの中で、デフォルトが0perldoc perldebug
であることを示唆しているようにも見えます。 )dieLevel
visual-studio - ソリューション内のVisualStudioプロジェクトリファレンス
ソリューション内のプロジェクトを参照するための最良の方法は何ですか。
[参照の追加]->[プロジェクト]から参照を追加しました。ただし、リリースDLLまたはデバッグdllのいずれかにリンクします。
プロジェクト自体を参照に含めたいのですが、プロジェクトをコンパイルするときは、すべての参照プロジェクトを(依存関係を介して)コンパイルする必要があります。
これを行う方法?
resources - コンパイル時のリンク プロセスに関する優れたリソース
私はしばらくの間コーディングを行っており、コンパイルのリンク段階は非常に簡単だといつも思っていましたが、最近アプリにプラグイン システムを追加する必要があり、かなりの数のコンパイルと実行時の問題に遭遇しました。この問題に関する私の完全な知識不足。今では問題なく動作し、その過程で多くのことを学びましたが、このテーマについてまだ学ぶべきことがたくさんあることに気付いたので、このテーマをもっと探求したいと思いました. それで、「コードセクション、シンボル、リンク、動的/静的ライブラリ...」ビジネス全体に関する記事、ブログ投稿、または本について誰かが良い指針を持っているかどうか疑問に思っていました.
私は gcc と ld を使用して Linux で開発していますが、M$ のやり方にも興味があり、知識を渇望しています :)
ありがとう!
static - Is it possible to use Mono static compilation on Windows?
I was wondering if it is possible to use Mono static compilation on Windows. If so, what should I do?
caching - コンパイル用の RAM ドライブ - そのようなものはありますか?
Stack Overflow に関する質問の 1 つに対する回答 (以下を参照)から、世界中のコーダーにとってかけがえのない素晴らしいソフトウェアのアイデアが浮かびました。
私は RAM ドライブ ソフトウェアを想像していますが、決定的な違いが 1 つあります。それは、ハード ドライブ上の実際のフォルダーをミラーリングすることです。より具体的には、現在取り組んでいるプロジェクトを含むフォルダーです。このようにして、ビルドはほぼ瞬時に実行されます (または、少なくとも 2 桁高速になります)。RAM ドライブは、アイドル状態のリソースのみを使用して、バックグラウンドでその内容をハード ディスク ドライブと同期します。
簡単な Google 検索では何もわかりませんでしたが、Google の検索方法がわからないだけかもしれません。おそらく誰かがそのようなソフトウェアを知っていますか? できれば無料ですが、妥当な料金でもかまいません。
追加:最初に破棄したいくつかの解決策が提案されました。それらは次のようになります (順不同):
- より高速なハードディスク ドライブ ( SSDか 10K RPM) を購入します。ハードウェア ソリューションは必要ありません。ソフトウェアが安価になる可能性があるだけでなく (フリーウェアですか?)、ハードウェアの変更が不可能ではないにしても歓迎されない環境 (オフィスなど) でも使用できます。
- OS/HDD にキャッシングを任せてください。空き RAM の使用方法を OS/HDD の方がよく知っています。OS/HDD には、すべてをキャッシュし、将来どのデータが最も必要になるかを予測しようとする汎用キャッシュ アルゴリズムがあります。彼らは、私にとって優先順位がプロジェクト フォルダーであることを知りません。そして、私たち全員がよく知っているように、とにかくあまりキャッシュしません。;)
- 周りにはたくさんの RAM ドライブがあります。それらのいずれかを使用します。すみません、それは無謀です。少し空き時間があるときはいつでも、データを HDD に同期する必要があります。停電が発生した場合、最後の 5 分間の作業を失うことは耐えられますが、最後のチェックイン以降のすべてではありません。
追加 2:思いついたアイデア - 通常の RAM ドライブとバックグラウンド フォルダー シンクロナイザーを使用します (ただし、バックグラウンドを意味します)。そのようなことはありますか?
追加 3:興味深い。仕事で単純なRAMドライブを試しました。再構築時間は ~14 秒から ~7 秒 (悪くはない) に短縮されますが、インクリメンタル ビルドは依然として ~5 秒です - HDD と同じです。理由はありますか?と を使用aspnet_compiler
しaspnet_merge
ます。おそらく、彼らは他の場所にある他の一時ファイルで何かをしているでしょうか?
追加 4:ああ、素晴らしい新しい回答セットです! :) OK、否定論者の皆さんにもう少し情報があります。:)
このアイデアの主な理由の 1 つは、上記のソフトウェア (ビルド時間 14 秒) ではなく、当時私がアクセスできなかった別のソフトウェアです。この別のアプリケーションには 100 MB のコード ベースがあり、完全なビルドには約 5 分かかります。ああ、それはDelphi 5にあるので、コンパイラはあまり高度ではありません。:) ソースを RAM ドライブに置くと、大きな違いが生じました。1分もかからなかったと思います。私は測定していません。したがって、OS の方がキャッシュをより適切に処理できると言うすべての人にとって、私は異議を唱えたいと思います。
関連する質問:
最初のリンクに関する注意: リンク先 の質問は重複しているため削除されました。それは尋ねました:
コードのコンパイル中に何をしますか?
そして、私がリンクしたDmitri Nesterukの答えは次のとおりです。
私はほぼ瞬時にコンパイルします。私のプロジェクトが小さいことと、RAM ディスクを使用していることが原因の 1 つです。
c++ - Visual C++ プロジェクト (ネイティブ C++) のコンパイル時間とリンク時間をどのように短縮しますか?
VC++ プロジェクト (ネイティブ C++) のコンパイル時間とリンク時間をどのように短縮しますか?
各提案がデバッグ、リリース、またはその両方に適用されるかどうかを指定してください。