質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Q&A

解決済

2回答

2857閲覧

g++ で 最適化オプション -O1 を使用するとリンクエラーになる

showkit

総合スコア1638

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

0グッド

0クリップ

投稿2018/04/20 02:13

表題の通りですが CentOS6.8、gcc4.4.7 で、下記のソース(test.cpp)を

cpp

1#include <iostream> 2 3int main(int argc, char* argv[]) 4{ 5 std::cout << "Hello, World." << std::endl; 6 return 0; 7}

下記で コンパイル・リンクすると正常に作成され、実行も可能なのですが

bash

1g++ -O0 test.cpp

下記で コンパイル・リンクすると続くエラーが表示されて ロードモジュールが作成されません。

bash

1g++ -O1 test.cpp 2/tmp/ccN33akD.o: In function `main': 3test.cpp:(.text+0x38): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)' 4test.cpp:(.text+0x68): undefined reference to `std::ctype<char>::_M_widen_init() const' 5collect2: ld はステータス 1 で終了しました

対処法をご存知の方がいらっしゃれば、ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

下記の方法で自己解決いたしました。
あまり見栄えのいいものでは ありませんが ライブラリを明示的に指定して

bash

1g++ -O1 test.cpp /usr/lib64/libstdc++.so.6

ちなみに

bash

1g++ -O1 test.cpp -L/usr/lib64 -lstdc++

では、やはりエラーになりました。

投稿2018/04/22 23:08

showkit

総合スコア1638

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

手元のCentOS6.9/gcc4.4.7環境に上記コードをコピペしてやってみましたが、どっちでも問題なく実行できるa.outが出来ました。
エラーメッセージを見る限りではundefined=未定義となってしまっているので、include文あたりに問題がありそうです。
全角文字等(空白文字とかエスケープ文字とか)が混ざっているとか・・・?

投稿2018/04/22 00:27

himazin.blm

総合スコア581

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

showkit

2018/04/22 23:09

回答ありがとうございました。とりあえず、掲載の方法で自己解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問