問題タブ [gcc4]

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

c++ - 同じ古い話-VSvsGCC 4.6.1

以下のコードはVS2010で正常にコンパイルされますが、gcc4.6.1ではコンパイルできません。

gccからのエラー:

* C:... \ Calculator_engine_impl.h | 20 |エラー:'(std :: string {aka std :: basic_string})(__ gnu_cxx :: __ normal_iterator>&、__gnu_cxx :: __ normal_iterator>&)'の呼び出しに一致しません| *

0 投票する
6 に答える
95 参照

c - このトリミング機能が正しく機能しない理由がわかりません

================================================== =============================

================================================== =============================

私は文字列を持っています:

'ABCDEF / G01'

上記の関数は、スペースを削除して私に戻ることになっています。

'ABCDEF/G01'

代わりに、私が返すのは次のとおりです。

「ABCDEF/」

何か案は?

注:引用符は、元の文字列にスペースが存在することを示すためのものです。

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

c++ - make_shared create std::shared_ptr? gcc 4.6.2

私はgcc 4.6.2を使用しています。

ベクトルshared_ptrでpush_backしようとしています。

しかし、gcc は毎回エラーを出します。

ここに私のコードライン:

私のgccが与えているエラーは次のとおりです。

私の目には、std::make_shared が std::shared_ptr を作成するというエラーが表示されます。
しかし、gcc では、shared_ptr は名前空間 std::tr1 にあります。
どうすれば修正できますか?

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

ios - Xcode 4.2.1 で openssl をビルドできません

xcode 3.5.2 で openssl をビルドできましたが、最近 Xcode 4.2.1 にアップグレードしました。同じ古い Xcode でビルドしようとすると、エラーが発生します。

Make[1]: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2: そのようなファイルまたはディレクトリはありません

これに対する解決策はありますか?

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

macos - Macports の GCC を使用してユニバーサル コードをコンパイルできますか?

Apple は GCC 4.6 または GCC 4.7 をサポートしていないため、MacPorts の GCC 4.6/4.7 ビルドに切り替えました。ただし、「ユニバーサル」アーキテクチャでコードをビルドするには問題がありました。

伝統的に、g++ -arch i386 -arch x86_64 ...少なくとも i386/x86_64 アーキテクチャ用にバイナリをコンパイルします。検索を行ったところ、-arch オプションは Apple のコンパイラでのみサポートされていることがわかりました。もちろん、Macports では動作しませんでした。私ができる最善の方法は、 -m32/-m64オプションを使用して、必要なアーキテクチャを指定することです。ただし、これは i386 または x86_64 形式のバイナリのみを生成します。私が本当に望んでいるのは、元の GCC コンパイラで行われたのと同じように、両方のアーキテクチャ (ユニバーサル) でバイナリ ファイルを取得することです。

これはサポートされていませんか、それとも既知の問題ですか? 一晩中 Google で答えを探してみましたが、何も役に立ちませんでした。それで、私だけがこの問題を抱えていて、それを機能させるために本当に重要なことを見逃しているのではないかと疑い始めましたか? 誰かが私にいくつかの提案をしてくれれば本当に感謝しています.

ところで。バリアントをインストールgcc46 +universalしましたが、アーキテクチャごとに個別のバイナリをコンパイルする以外に、本当に普遍的なものは何も生成しませんでした。

興。

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

php - Redhat で PHP から gcc を呼び出す

exec コマンドを使用して、PHP から gcc を呼び出しています。その後、gcc は「stddef.h が見つかりません」などの奇妙なエラーを返します。

PHP はユーザー名「oracle」で実行されています。つまり、「exec」を使用して PHP スクリプトを介して「whoami」を呼び出すと、ユーザー名として oracle が与えられます。

端末でエラーなしで gcc を簡単に呼び出すことができます。

エラーなしで「sudo -u oracle gcc source.c」を呼び出すことができます。

だから私にはとても奇妙です。何か案は???

PS: Fedora と Apache で問題なく動作します。および Apache を使用した Ubuntu で。

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

gcc - コンパイラGCCのコンパイル中にエラーが発生しました

コンパイラをコンパイルするのは皮肉なことです。しかし、このコンパイラの特定のバージョンが必要であり、CentOS5.xリポジトリには最新バージョンのGCCがありません。

必要なバージョンは4.3.2ですが、4.1.1しかありません。

このチュートリアルに従ってgcchttp://www.mjmwired.net/resources/mjm-fedora-gcc.htmlをインストールし、configureで次のパラメーターを使用しました(コンパイル前)。

/root/gcc/gcc-4.3.6/configure --prefix = / opt / gcc43 --program-suffix = 43 --enable-languages = c、c ++ --enable-shared --enable-threads = posix- disable-checking --with-system-zlib --enable -__ cxa_atexit --disable-libunwind-exceptions --disable-multilib

最後のオプション--disable-multilibは、以前のコンパイル試行で発生した別のエラー(長いコンパイル時間の後...)のために私を救います

また、以前の試行でエラーが発生したため、環境変数を設定しました。そのため、次のように設定しました。

これにより、コンパイラはそのディレクトリ内のmpfrおよびgmpライブラリ(必要)を検索できます。

だから、私は'make'コマンドを実行します。

今回はもっと時間がかかったので、私はそれですべて大丈夫でしたが(変数を設定する前の最後の試みでは、コンパイルに約2時間かかりました)

アマゾンウェブサービスでマイクロインスタンスを使用しました。このインスタンスにはシングルコアx86_64プロセッサが1つとRAMが613MBしかないため、コンパイルに約9時間かかりました。

残念ながら、私は再びエラーが発生しました!!、今私はこれを取得しました:

助言がありますか?

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

gcc - gcc で march=native をデフォルトとして使用する方法は?

-march=nativeコマンドラインで何も指定されていない場合にパスするようにスペックファイルを変更する方法はありますか?

デフォルトの specs ファイルの関連事項は次のとおりです。

仕様がどう動くかはわかりません。-march=nativebefore または afterを指定するだけで%(cc1_cpu)は機能しません。-something_wierdただし、の代わりに置くとGCCがエラーを報告するため、この行は有効になります-march=native

私が気づいたもう1つのことは、の%{march=i386:-something_wierd}前に置く%(cc1_cpu)と、gccがエラーを報告するので、何も指定されていない場合は常に渡されるように見えるため、何も指定されていないこととspecファイル-march=i386にあることを区別する方法はありますか?-march=i386

ところで、何をし%>ますか?ドキュメントには明記されていないようです。

MinGW を使用していgcc-4.6.2ます。

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

gcc - GCC 4.5 対 4.4 の依存関係とのリンク

GCC 4.4 と GCC 4.5 で同じ操作を実行しようとすると、違いが見られます。私がこれを行っているコードは独自のものであるため、提供することはできませんが、この単純なテスト ケースで同様の失敗が見られます。

私が基本的にやろうとしているのは、ある共有ライブラリ (libb) を別の共有ライブラリ (liba) に依存させることです。libb をロードするときは、libb が必ずしも liba のシンボルを使用しているわけではありませんが、liba もロードする必要があると想定しています。

私が観察しているのは、GCC 4.4 でコンパイルすると、liba がロードされていることがわかりますが、GCC 4.5 でコンパイルすると、libb がロードされません。

ac と bc の 2 つのファイルで構成される小さなテスト ケースがあります。ファイルの内容:

これは、さまざまなバージョンの GCC を使用した私の出力です

誰が何が起こっているのか説明できますか? もう 1 つの余分な情報は、libb.so の ldd は、GCC 4.4 では liba.so を表示しますが、GCC 4.5 では表示しないということです。

編集

test.sh を次のように変更しました。

これにより、GCC 4.5 で次の出力が得られました。

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

c++ - C++ の catch ブロック内で何かをスローしようとすると終了するのはなぜですか?

次の C++ コードがあり、驚きました。問題は、catch ブロック内で再スロー以外のものをスローすると、abort を呼び出すことによってプログラムが終了し、GCC4 で「'int' のインスタンスをスローした後に呼び出されて終了します」というエラー メッセージが表示されることです。「投げる」だけなら catch ブロック内で再スローするには、すべて問題ありません。