問題タブ [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.

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

c - tcc でのヌル ポインターの検出

非常に単純なリンク リストを作成したところ、自分のコードとの出力の違いにtcc filename.c気付きました。tcc filename.c -run

コンパイルしtcc filename.cてから実行すると、期待どおりの出力が生成されます。

これは、GCC と clang で得られる出力でもあります。

私が使用すると、次のようtcc filename.c -runになります。

最後の数値は常にゼロで、他の 2 つの余分な値は実行するたびに異なります。

関数と関数に追加l1 -> next = NULL;するソリューションを見つけました。newListl2 -> next = NULL;appendList

しかし、なぜ出力に違いがあるのか​​ 疑問に思っていました。NULLコンパイラにバグがありますか、それともほとんどのコンパイラで動作するにもかかわらずポインタを初期化しないのは間違っていましたか?

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

c - Build TinyCCompiler(TCC) のソースからの crt1.o,crti.o のエラーの修正方法は?

ソースから TinyCCompiler(TCC) をビルドする際の crt1.o,crti.o のエラーを修正するにはどうすればよいですか?

https://github.com/LuaDist/tcc

デスクトップシステム(ubuntu)でこれをテストし、サーバー(centos)でもテストしています。両方の OS で、エラーを表示します。

エラー :

詳細 :

guest@Base:~/Gits/tcc-compiler$ ./configure --prefix=build

guest@Base:~/Gits/tcc-compiler$ sudo make

guest@Base:~/Gits/tcc-compiler$ sudo make install

guest@Base:~/Gits/tcc-compiler$ cat test2.c

エラー :

guest@Base:~/Gits/tcc-compiler$ build/bin/tcc test2.c

$ find /usr/ -name crti*

$ find /usr/ -name crt1*

(完全なコマンドはhttps://pastebin.ubuntu.com/26211506/で入手できます)

どのようにエラーを修正できますか?


私はsudo apt install tcc.(バグやエラーなしで)を使って tcc をインストールできます。

しかし、ソースから tcc をインストールしたい (これにはエラーがあります)


新しいアップデート

tcc.h ファイル内:

に変わり/usr/libます/usr/lib/x86_64-linux-gnu

$ build/bin/tcc test.c -run

$ /build/bin/tcc test.c


新しいアップデート

guest@Base:~/Gits/tcc-try/_build/_install/bin$ ./tcc test.c

インクルードファイルが見つからないというエラーを修正するには?!

関連質問 : TinyCCompiler(TCC) のインクルード ファイルのエラーのエラーを修正するにはどうすればよいですか?

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

c - 基本的な C SDL2 プログラムは、GCC では動作しますが、TCC では動作しません (Linux)

私は次のCコードを持っています(明確にするために、それは完全なコードではなく、イベントやそのようなものを処理する必要があることを知っています):

これを GCC (シバン行なし) でコンパイルし、実行可能ファイルを開始すると、問題なく動作しますが、TCC のコンパイルおよび実行機能のシンプルさとその速度が気に入っています。

ただし、コンパイルされた実行可能ファイルは次のコンソール出力を提供し、その後永久にハングアップし、CTRL-C で強制終了することさえできません。

ここで提案されているように SDL_MAIN_HANDLED を追加しましたが、何も変わりませんでした。

誰?

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

c - Tiny C Compiler の生成コードが余分な (不要な?) NOP と JMP を発行する

誰かがこのコードの理由を説明できますか:

tcc code.c を使用して tcc でコンパイルすると、次のasm が生成されます。

だと思います

いくつかのメモリ調整のためにあるかもしれませんが、どうですか

つまり、コンパイラが次の命令にジャンプするニアジャンプを挿入するのはなぜですか? とにかく LEAVE が実行されるのでしょうか?

TCC 0.9.26 を使用して 32 ビットの実行可能ファイルを生成する 64 ビットの Windows を使用しています。