問題タブ [tcc]
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 - コンパイラtccを使用してウィンドウにgslライブラリを追加する方法は?
現時点では、次のコマンドを使用して Windows コマンド プロンプトを使用して、基本的な「Hello World」プログラムをコンパイルして実行できます。
に続く
ここで、test は、"Hello World"
プログラムのコードを含むファイルの名前です。
tcc
フォルダを c:\ ドライブの上にインストールしました。ライブラリを実行する必要がある別のプログラムがありますが、gsl
ライブラリをどこから、どのように正しくインストールするか、プログラムのコンパイルおよび実行時にライブラリを呼び出す方法がわかりません。
c - TCC 経由で C をコンパイルするときの GLFW gl.h エラー
TCC で単純な GLFW プログラムをコンパイルしようとすると、gl.h ヘッダーでエラーが発生します。
コンパイルに使用しているコマンドは
このコマンドの完全な出力は次のとおりです
そして、これが私がコンパイルしようとしている簡単なプログラムです
何か間違ってリンクしていますか?または、リンクするはずのものをリンクしていませんか?コンパイル パラメータの何が問題になっていますか?
cmd - cmd で TCC (Tiny C Compiler) を実行するには?
cmd で小さな C コンパイラを使用しようとしていますが、cmd で tcc ファイルを見つける方法を忘れてしまいました。cmd を tiny c コンパイラにリンクするにはどうすればよいですか?
c - C - tcc が commdlg.h でエラーを検出しますか?
OPENFILENAME を組み込んだ C プログラムを作成しようとしていますが、もちろんヘッダー ファイルが必要です。そこで、tcc で提供される指示に従って、MinGW が Win32 API に使用するヘッダー ファイル (およびライブラリ ファイル) をダウンロードし、指示に従って適切なディレクトリに配置しました。ただし、プログラムをコンパイルすると、次のエラーが発生します。
これが標準ヘッダーであることを考えると、これはかなり奇妙に思えます。だから、私はその行を調べて、typedef __AW(CHOOSECOLOR) CHOOSECOLOR,*LPCHOOSECOLOR;
それは私にはあまり有効に見えませんが、私は実際にはCの専門家ではなく、主にLinuxで書いています。なぜそれがうまくいかないのかわからないのですが、それを修正する方法についての知識はありませんか?tccのバグですか?
これが可能であることの証拠として、tcc readme からの適切な一節を次に示します。
ヘッダー ファイル:
システム ヘッダー ファイル (_mingw.h を除く) は、MinGW ディストリビューションからのものです。
Windows ヘッダーからは、最小限のセットのみが含まれています。さらに必要な場合は、MinGW の「w32api」パッケージを入手してください。
この質問は、TCC で Windows.h をインクルードするときのエラーに似ていることを理解していますが、私の「windows.h」ファイルは機能します - 機能しないのはこれだけです。
これを解決する方法を知っている人はいますか?私は本当にルーズエンドです!
c - tcc: エラー: 未定義のシンボル 'pthread_create'
これをtccでコンパイルしようとしています
これらのエラーがあります
エラーの前は「pthread.h が見つかりません」で、pthread,pthread_compat,pthread_signal,pthread_time,pthread_unistd ヘッダー ファイルを gcc include dir から tcc include dir にコピーしました。...そして今、私は上記のエラーを抱えています..リンクに何かがあると思いますが、正確にはわかりません:/
c++ - gcc で生成された .o ファイルに対して tcc を使用してソースをコンパイルしようとすると、奇妙な動作が発生する
gcc で生成された .o ファイルに対して tcc (ver 0.9.26) でソースをコンパイルしようとしていますが、奇妙な動作をします。gcc (ver 5.3.0) は MinGW 64 ビットのものです。
具体的には、次の 2 つのファイル (te1.c te2.c) があります。Windows7ボックスで次のコマンドを実行しました
文字列から 4 バイトが切り取られていることに注意してください1234567in dummy!!!\n
。何がうまくいかなかったのだろうか。
ありがとうジン
========ファイル te1.c===========
========ファイル te2.c===========
更新 1
te1.o (tcc でコンパイルされた te1.c) と te1_gcc.o (gcc でコンパイルされた te1.c) の間のアセンブリの違いを見ました。コンパイルされた tcc では が見られlea -0x4(%rip),%rcx
、コンパイルされた gcc では が見られましたlea 0x0(%rip),%rcx
。理由がわからない。
Update2
バイナリ エディタを使用して、te1.o (gcc で生成) のマシン コードを変更lea 0(%rip),%rcx
しlea -0x4(%rip),%rcx
、tcc に変更してリンクすると、結果の exe は正常に動作します。より正確には、私はそうしました
アップデート 3
要求に応じて、ここに出力がありますobjdump -r te1.o
c - 実装定義マクロによる clang、gcc、および tcc の認識
clang
、gcc
、およびを使用tcc
していますが、共通のヘッダーで 3 つを区別できるようにしたいと考えています。
マクロ ダンプから判断すると、マクロの存在によって
__clang__
clang が一意に識別されると思われます。
でマクロ ダンプを取得できませんtcc
($compiler -x c -E -dM /dev/null
この場合は機能しません)。
gcc (および場合によっては tcc) を一意に識別するマクロ (存在する場合) は何ですか?
c - MinGW - なぜ C の「hello world」実行可能ファイルは 42kb なのですか?
C の hello world を MinGW でコンパイルすると、結果の exe は 42Kb になります。Tiny C Compiler を使用すると、2Kb 程度になります。(どちらの場合も、オプションを指定したり、何か面白いことをしたりせずに、 gcc hello.c -o hello.exe だけです)
これで、最小限のスタートアップ コードが必要であることがわかりました。しかし、mingw がそこに置く余分な 40kb のものは何ですか、それは何をしますか、なぜそれが必要なのですか?