C++ - gccでコンパイルする際にc++標準ライブラリを変更したい｜teratail
回答率
88.38%
tag:
PHP, JavaScript, Java, Python, etc.
is:
accepted, not-accepted, answered, not-answered
sort:
created-asc, created-desc, updated-asc, updated-desc, smart
author:
username, me
検索
ログイン
新規会員登録
質問する
質問をすることでしか得られない、回答やアドバイスがある。
15分調べてもわからないことは、質問しよう！
質問する
ただいまの
回答率
88.38%
トップ
C++に関する質問
C++
GCC
コンパイル
JavaScriptを有効にしてください
gccでコンパイルする際にc++標準ライブラリを変更したい
解決済
回答 2
投稿 2019/12/11 13:34
評価
クリップ 2
VIEW 1,219
退会済みユーザー
実行環境
OSX 10.14.5
GCC 6.5.0
概要
gccでコンパイルするとデフォルトで使用される標準ライブラリは"libstdc++"ですが，これを"libc++"に変更したいと考えています．
以下のドキュメントによると，gcc側はこの標準ライブラリの入れ替えを提供していないため手動でリンクを貼り替えるべきとのことでした．
https://libcxx.llvm.org/docs/UsingLibcxx.html
したがって，ドキュメントにある通り以下を実行しました．
g++ -nostdinc++ -I/usr/lib/libc++.1.dylib/include/c++/v1 -nodefaultlibs -lc++ -lc++abi -lm -lc -lgcc_s -lgcc test.cpp
この時，以下のエラーメッセージが出ました．
ld:　library not found for -lgcc_s
解決したいこと
そもそもリンクする標準ライブラリを変更するという簡単な操作をgcc側で出来ないのか疑問であるため(clangなら-stdlib=libc++のように簡単出来たはず)，他に方法があるなら教えて頂きたいです．
また，今回のように手動での切り替えしか出来ないのであれば，ドキュメントの例のように実行した場合にlibgcc_sライブラリが見つからない理由について教えて頂きたいです．
c++標準ライブラリ関連に対する知識が浅いため，おかしな質問内容になっているかもしれませんが，対応の程よろしくお願いします．
attachmentクリップ2
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
thumb_up高評価-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
質問内容が明確
自分も答えを知りたい
質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
低評価-
評価を下げられる数の上限に達しました
評価を下げることができません
1日5回まで評価を下げられます
1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
プログラミングに関係のない質問
やってほしいことだけを記載した丸投げの質問
問題・課題が含まれていない質問
意図的に内容が抹消された質問
過去に投稿した質問と同じ内容の質問
広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
評価を下げる理由を選択してください
プログラミングに関係のない質問 やってほしいことだけを記載した丸投げの質問 問題・課題が含まれていない質問 意図的に内容が抹消された質問 過去に投稿した質問と同じ内容の質問 広告と受け取られるような投稿
詳細な説明はこちら
上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。
送信する
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
質問回答など一定の行動
メールアドレスの認証
メールアドレスの認証
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
回答 2 件
sort評価が高い順
sort新着順
sort古い順
link
check解決した方法
0
・使用しているgccがデフォルトでリンクしているライブラリを全て調べる
・"-nodefaultlibs"でデフォルトでのライブラリのリンクを全て外す
・調べたライブラリのなかで"libstdc++"以外のものを全てリンクさせる
の手続きで一応解決はしましたが，あまり良くない方法だと思います．
標準ライブラリの衝突を避けるためにgccで"libstdc++"を外して"libc++"を使いたいという質問でしたが，今回の解決策であると問題点が多くありそうなので，gccでのコンパイルに詳しい方の良い解決策を聞きたかったです．
投稿 2019/12/12 10:13
add高評価0
回答の評価を上げる
以下のような回答は評価を上げましょう
正しい回答
わかりやすい回答
ためになる回答
評価が高い回答ほどページの上位に表示されます。
remove低評価0
回答の評価を下げる
下記のような回答は推奨されていません。
間違っている回答
質問の回答になっていない投稿
スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
commentコメント投稿
link
-2
ライブラリディレクトリにそのライブラリファイルはありますか？
まずはそれをきちんと確認しましょう
投稿 2019/12/11 13:37
add高評価0
回答の評価を上げる
以下のような回答は評価を上げましょう
正しい回答
わかりやすい回答
ためになる回答
評価が高い回答ほどページの上位に表示されます。
remove低評価2
回答の評価を下げる
下記のような回答は推奨されていません。
間違っている回答
質問の回答になっていない投稿
スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
2019/12/11 14:14
回答ありがとうございます
申し訳ないですが回答の意図がわかりません
ライブラリファイルがないとエラーに書いてある通りだと考えています
その上でドキュメントの例の書き方の何が悪いのかを質問しています
回答ありがとうございます 申し訳ないですが回答の意図がわかりません ライブラリファイルがないとエラーに書いてある通りだと考えています その上でドキュメントの例の書き方の何が悪いのかを質問しています
キャンセル
完了する
2019/12/11 14:19
解決しようという話ではなかったんですね。失礼しました。
解決しようという話ではなかったんですね。失礼しました。
キャンセル
完了する
2019/12/11 14:34
> ライブラリファイルがないとエラーに書いてある通りだと考えています
追加インストールする、ということは試みてみましたか？
> ライブラリファイルがないとエラーに書いてある通りだと考えています 追加インストールする、ということは試みてみましたか？
キャンセル
完了する
15分調べてもわからないことは、teratailで質問しよう！
ただいまの回答率 88.38%
質問をまとめることで、思考を整理して素早く解決
テンプレート機能で、簡単に質問をまとめられる
質問する
関連した質問
解決済
回答 2 / クリップ 1
c++のライブラリをJavaで使う方法
更新 2015/12/14
解決済
回答 2 / クリップ 0
Windows上でのRaspberryPi用のthreadプログラムのリンクエラー
更新 2016/07/20
解決済
回答 1 / クリップ 1
nghttp2をconfigure時のエラーについて
更新 2017/01/22
受付中
回答 2 / クリップ 1
dllimportでcのdll内の関数を呼び出す（gccコンパイラとvisual studio）
更新 2017/02/16
解決済
回答 1 / クリップ 0
GNU標準ライブラリのgmtime_s()のドキュメント
更新 2017/04/20
解決済
回答 2 / クリップ 0
ダイナミックリンカローダーについて
更新 2017/07/18
受付中
回答 1 / クリップ 0
静的リンクによる共有ライブラリの作成について
更新 2018/07/12
解決済
回答 2 / クリップ 0
MingwのGCCにて、-fstack-protectorを使ったC言語プログラムの実行時セグメンテ...
更新 2019/07/01
同じタグがついた質問を見る
C++
GCC
コンパイル
ツイートする
0
0
関連した質問
受付中
officeファイルのプレビュー
回答 2 / クリップ 0
更新 2015/07/06
解決済
静的リンク(-static)をつけてのコンパイルのエラーについて
回答 1 / クリップ 0
更新 2016/05/19
解決済
ソースからビルドしたglibcをリンクしたい
回答 1 / クリップ 0
更新 2017/01/29
受付中
yumなどのパッケージインストールとソースからインストールする違いについて
回答 2 / クリップ 0
更新 2018/03/02
SNSアカウントでログイン
Facebookでログイン
Twitterでログイン
Googleでログイン
GitHubでログイン
Hatenaでログイン
teratailアカウントでログイン
ログイン
新規会員登録
パスワードを忘れた方
思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る
閉じる
トップ
C++に関する質問
gccでコンパイルする際にc++標準ライブラリを変更したい
PAGE TOP
送信
頂いたご意見への回答は行っておりません。
返信の必要なお問い合わせはこちら
【募集】 teratailを一緒に作りたいエンジニア
タグ一覧
ユーザーを探す
バッジとは?
teratailとは？
称号とは?
エキスパート一覧
コミュニティ一覧
公式ブログ
teratail Report
運営からのお知らせ
teratail API
ヘルプ
運営会社
利用規約
個人情報の取り扱い
個人情報保護方針
広告掲載のお問い合わせ
© 2014-2021 Leverages Co., Ltd.
