問題タブ [cl]

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

c++ - cl.exeの組み込みマクロを見つける方法

cl.exeの組み込み/事前定義されたマクロを見つける方法を知っている人はいますか?たとえば、gccの場合、次のコマンドラインにコンパイラの組み込みマクロがすべて一覧表示されます。

編集:「実際のコンパイラに尋ねる」というgccに似た方法に興味があります。

ありがとう

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

c++ - Windows 7 64 ビット Visual Studio 2013 上のネイティブ cl.exe

Visual Studio 2013 のどのエディションのネイティブ 64 ビットcl.exe( amd641 ではなくx86_amd64) が必要ですか? Visual Studio 2013 Express (Windows デスクトップ開発) で Windows 7 64 ビットを実行しています。

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

c++ - NMAKE を使用した VC++ DLL のコンパイル

Visual Studio 2005 を使用してコンパイルした DLL ファイルがあり、C# プログラムからこれらの関数 (DLL 内) を呼び出すと、完全に機能します。しかし、同じプログラムを NMAKE を使用してコンパイルすると、正常にコンパイルされますが、C# プログラムでは動作しません。「DLL NOT FOUND EXCEPTION」または「DLL IS CORRUPT」が表示されます。

PS: 元のプロジェクト ファイルからすべてのコンパイラ オプションとリンカー オプションをコピーし、それをMakeFileで使用しましたが、まだ役に立ちません。ここで何が欠けていますか?

コンパイラとリンカーのオプションは次のとおりです。

編集: dumpbinを使用すると、「HEADERS」、「EXPORTS」、「SYMBOLS」のサイズはすべて、Visual Studio を使用してコンパイルされた DLL よりも NMAKE を使用してコンパイルされた DLL の方が小さくなります。

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

c - /c および /MD オプションを使用して C ファイルをコンパイルし、.lib ファイルをリンクする

3 ~ 4 個の外部ライブラリを使用する C ファイルがあります。cl.exeand link.exe(MSVC)を使用して構築されています。

ビルド スクリプトは、exe を生成するプロセスが 2 つの段階にあることを示しています。

  • cl.exeファイルを取得するには、「/c」オプションを使用し.oます。これには他にもたくさんのフラグが付けられていますが、私が関心を持っているのは/MD. MSDN は次のように述べています。

アプリケーションがランタイム ライブラリのマルチスレッド固有および DLL 固有のバージョンを使用するようにします。_MT と _DLL を定義し、コンパイラがライブラリ名 MSVCRT.lib を .obj ファイルに配置するようにします。

コンパイルするだけで、リンクしていない場合、/MDwithを与えることの用途は何ですか?cl

  • この後link.exe、exeを生成するために使用されます。リンク用にいくつかの.libファイルが指定されています (ole32.lib、advapi32.lib、user32.lib など、およびその他の非 MSVC 固有のものなど)。私の質問は.lib、静的リンクに使用されるファイルではないということですか? はいの場合、最終的な exe が約 500 KB しかないのはなぜですか? のいずれ.libもインポート ライブラリではありません。

    そうでない場合、linkデフォルトで静的または動的リンクを使用しますか? /MD指定された withclはここで効果がありますか?

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

c++ - 明らかに正しくない C++ コードが cl.exe コンパイラによって受け入れられました

次の C++ コードが Visual Studio 2012 の Microsoft cl.exe コンパイラで受け入れられるのはなぜですか?

明らかな間違いのように見えますが、上記のコードはコンパイル可能です。ただし、次のコードは正しく拒否されることに注意してください。

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

c++ - 未使用の変数と関数のリンカエラー

次のテストプログラムを作成しました

ご覧のとおり、このプログラムは何もしていません。ただし、コンパイル中に、これらがエントリポイント関数から参照されないという事実にもかかわらず、globalvarおよびのリンカーエラーに直面しました。Windows(を使用)とLinux(を使用)の両方で問題に直面しました。int proc1()mainclgcc

この参照されていないグローバル変数と関数をエントリ ポイント (cl、gcc、clang) からリンクしないようにコンパイラ/リンカーに指示する方法はありますか?

Windows での正確なエラー メッセージ:

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

command - as400 crtcmd コマンドがライブラリに作成されていません

私は独自のコマンドを作成していますが、これまでのところ、.cmd コードを処理する cl コードは単独で問題なく動作しています。私はそれを呼び出してパラメーターを送信することができ、それはまさに必要なことを行うので、エラーは .cmd にあるに違いないと仮定しています:

実行crtcmdして適切なファイル名を指定すると、「Command DSPSYSLVL not created in library [library name]」というメッセージが表示されます。CPF0201 メッセージで。

私はまだシステム全体にかなり慣れていないので、何が問題なのか本当にわかりません。ジョブログも新しい情報を提供しません...