[gcc] タグが付いた質問
GCCはGNUプロジェクトによって開発されているCコンパイラ、および他の言語も含むコンパイラ群です。多くのLinuxディストリビューションで標準のコンパイラとして使われています。
68 件の質問
19
票
4
回答
3,166
閲覧数
最適化を無効化(-O0)すると動作しないアプリケーション?
Gentoo linuxのドキュメントに下記のような説明がありました。
字義通り解釈すると「コンパイル時最適化を無効(-O0)にすると正常動作しないアプリケーションがある」とのことですが、実際にそのようなパッケージ(アプリケーション)は存在するのでしょうか?
https://wiki.gentoo.org/wiki/GCC_optimization
-O0: This level (that ...
7
票
4
回答
708
閲覧数
C言語などのコンパイラはどのようにしてコンパイルされたのですか?
C言語などのプログラミングにはGCCなどのコンパイラが必要ですよね。ですが、そもそもの話、コンパイラというプログラムを作るためにコンパイラが必要になるわけで、ここにパラドックスが生じてしまいます。
コンパイラをコンパイルするためのコンパイラはどのようにして開発されたのですか? すべての源となるコンパイラはアセンブリ言語やマシン語で開発されたのでしょうか?
5
票
4
回答
1,951
閲覧数
TDM-GCC 5.1.0 で c99 オプションを指定したコンパイル時、printf の %lf で出力される結果が想定と異なる
TDM-GCC 5.1.0 で以下のソースを gcc -std=c99 -pedantic test.c のように c99 を指定してコンパイルを実行すると、%lf 指定した方の出力が 0.000000 になってしまいます。
対象のソースコード:
#include <stdio.h>
int main(void){
double v = 3.1415926;
...
5
票
1
回答
826
閲覧数
VisualStudioとgccで挙動が違うのはなぜですか?
以下のプログラムをVisualStudio2017, wandbox(gcc) で実行すると異なる結果になります。
wandbox
// This file is a "Hello, world!" in C++ language by GCC for wandbox.
#include <iostream>
#include <cstdlib>
#include <...
5
票
2
回答
852
閲覧数
x86用gccの拡張インラインアセンブラ構文で、オペランドにレジスタまたはメモリ参照のみを許可し即値は禁止するようにしたい
gccでのインラインアセンブラの書き方の勉強をしているのですが、以下のような場合の書き方がわからずに困っています。やり方をご存知の方は教えていただけませんでしょうか。
【実現したいこと】
x86用gccの拡張インラインアセンブラ構文で、オペランドにレジスタまたはメモリ参照のみを許可し即値は禁止するようにしたい。
【経緯】
インラインアセンブラの実験のために以下のようなコード(ファイル名:...
3
票
1
回答
4,157
閲覧数
sqrt() の引数に変数をいれるとコンパイルエラーとなる。undefined reference。どうしたらいいでしょうか。
コメントアウトした文のように、直接的に数値を代入すると問題ありませんが、変数をいれるとコンパイルエラーが出てしまいます。
どうしたらいいでしょうか。
実行環境:
Ubuntu
gcc 9.3.0
コンパイル結果:
$ gcc sqrtyou.c
/usr/bin/ld: /tmp/cc0MDw2q.o: in function `main':
sqrtyou.c:(.text+0x23): ...
3
票
1
回答
492
閲覧数
gccのライブラリディレクトリ検索
gccのコンパイル時に、ライブラリディレクトリ、/usr/lib/内のサブディレクトリ内は自動的に検索されるのでしょうか?
また、別の場所にあるディレクトリのシンボリックリンクを/usr/libに置いた場合、検索されるでしょうか?
あるいは、ld.so.confなどで明示的に指定する必要があるでしょうか?
よろしく、お願いいたします。
3
票
1
回答
781
閲覧数
32bit 実行ファイルで cifs マウント先の readdir() が NULLになる
次のプログラムを x86_64 Linux 環境 (Centos7) でコンパイルし、CIFSでマウントした ディレクトリの中身を 表示させようとしました。
gcc のオプションに -m32 をつけて 32bit でコンパイルしたときと、64bit でコンパイルした場合で、動作が異なり 32bit だと正しく 表示されません。
なぜ 32bit 版は正常に動作しないのでしょうか。
または、...
3
票
2
回答
615
閲覧数
cinを用いて複素数に数字を入力するコードが、 Visual Studio だとエラーになる
#include <iostream>
#include <complex>
using namespace std;
int main() {
complex<int> p;
int m;
cin >> p.real() >> p.imag();
cout << p.real() << p.imag();
...
3
票
1
回答
920
閲覧数
__dso_handleとは何でしょうか?
諸事情により詳しいソースや手順については記述できないのですが
先日ABIのみが共通の亜種コンパイラを複数利用してC/C++ソースをバラバラにコンパイル&リンクした所
リンク時に__dso_handleが複数定義されているというエラーが発生しました
当然ながら滅茶苦茶な方法だったので上記問題は別途解決済みなのですが、__dso_handleの存在がイマイチ理解できずモヤモヤしています
...
3
票
1
回答
1,430
閲覧数
push命令(pushl)で invalid instruction suffix for push というエラーになる
下記のアセンブリのpushlの部分でinvalid instruction suffix for push
というエラーが発生します
なぜ、pushlを使うとこのエラーが発生するのでしょうか?
環境
- gcc: 5.4.0
- os: ubuntu 16.04.2 x86_64
実行するアセンブリのコード (参考 http://blog.livedoor.jp/hiroumauma/...
3
票
1
回答
1,012
閲覧数
g++のコンパイルエラー:error : declaration of '~~~' changes meaning of '~~~'
現在、「ゼロからのOS自作入門」という書籍で学習している者です。
環境はUbuntu 20.04.2、g++9.3.0で挑戦しております。
現在、筆者の用意したドライバを用いて、USBデバイスをコントロールするという章です。(購読されている方は、第6章です)
ここで、用意��れたドライバを含めたプログラムをビルドすると、以下のようなエラーが出ました。
./usb/xhci/trb.hpp:325:...
2
票
4
回答
935
閲覧数
アセンブラで呼び出したCの関数から戻り値を取得する方法
nasmとgccを用いてアセンブラを勉強中です
動作環境はWindows11です
Cとアセンブラを連携するため、以下のコードを書きました
;Asm.asm
bits 64
extern print
section .data
message: db "Success", 10
section .text
global Test
Test:
mov rcx,...
2
票
2
回答
1,908
閲覧数
標準ライブラリ(ctype.h)のコンパイルエラーについて
ardupilotというオープンソースのソースを改変しながら開発を進めています。
最近g++でビルドした際に標準ライブラリ内でエラーが発生するようになりました。エラー内容は以下の通りです(環境はubuntudです)。
In file included from /usr/include/c++/5/bits/basic_ios.h:37:0,
from /usr/...
2
票
1
回答
2,399
閲覧数
glibc 2.20 のビルドに失敗する
glibcのビルドをしようとしているのですが,失敗して��まいます.なぜでしょうか?
glibc2.20をダウンロードの後,展開し,その上でconfigureスクリプトを走らせると,以下のエラーが生じます.
$ ../configure --prefix=/opt/glibc-2.20
checking build system type... x86_64-unknown-linux-gnu
...