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

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

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

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Q&A

1回答

527閲覧

C++で利用するアプリの静的リンクの探し方か作り方を教えて下さい

akptaro

総合スコア29

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

0グッド

0クリップ

投稿2023/11/07 09:36

編集2023/11/08 05:36

実現したいこと

1)フリーの開発環境で画面キャプチャーアプリを作りたい
2)CodeBlocksはフリーの開発環境でそちらで作成
3)開発PCだとうまく行ったが使用するPCに持っていった所DLLが足りないとの事で動作せず
4)静的リンクを持ってくればDLL持ってくれば良いのでその静的リンクの探し方や作り方が分からないのでお教え頂けないでしょうか?

今は
libgcc_s_seh-1.dll
の静的リンクが欲しいのです……
実行した際に足りないと言われるDLLがあった場合静的リンクを
CodeBlocksのプロジェクトのビルドオプションのリンカ設定に追加して
dllがなくても動作するようにしたいのです。

前提

CodeBlocksのC++でアプリケーションを作っていましたが静的リンクを使いたいとChatGPTに聞いた所

Windows: Windows向けのGCCコンパイラはMinGWを使用することが一般的です。MinGWをインストールして、GCCコンパイラを使用できるようにします。

とあった。

試したこと

MinGW インストール
とググって書いてあるURLの通り
http://mingw-w64.org/
からダウンロード>MingW-W64-builds >Github
とりあえず
x86_64-13.2.0-release-win32-seh-ucrt-rt_v11-rev0.7z
をダウンロードして展開してみたが
.aファイルがない

補足情報(FW/ツールのバージョンなど)

特になし

チャットGPTは正確じゃないのは理解しているのですが
アプリで用いる静的リンクのlibgcc_s_seh.aとlibstdc++-6.aが欲しいので
何か情報をお持ちな方はコメント頂けると嬉しく思います。

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

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

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

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

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

akptaro

2023/11/07 09:45

MinGWのディストリビューションにはあるらしいのですが それが何か分からないのです……
otn

2023/11/07 10:55 編集

> 実現したいこと > MinGWをインストールしてlibgcc_s_seh.aとlibstdc++-6.aを取得したい。 は「実現したいこと」じゃなくて、「実現したいことの手段となるかもしれないこと」に見えます。 何か実現したいこと ⇒ そのための手段案:スタティックリンク ⇒ そのための手段案:MinGWのGCCを使う 状況がよくわかりませんが、インストールしたMinGWのgccでコンパイルするとそのファイルが無いというエラーになったと言うことでしょうか?この2つのファイル名がでてきた経緯が不明です。どちらもそもそも存在しないファイル名のようですが。
akptaro

2023/11/08 05:23

otnさん コメントありがとうございます。 仰る通りですね…… 経緯としては 1)フリーの開発環境で画面キャプチャーアプリを作りたい 2)CodeBlocksはフリーの開発環境でそちらで作成 3)開発PCだとうまく行ったが使用するPCに持っていった所DLLが足りないとの事で動作せず 4)静的リンクを持ってくればDLL持ってくれば良いのでその静的リンクの   libgcc_s_seh.aとlibstdc++-6.aを持ってこようとする。 との流れです…… なのでタイトルは”C++で利用するアプリの静的リンクの探し方を教えて下さい” の方が良いですね…… コメントありがとうございます。 本件はタイトルだけ見たら意味不明なので作り直します。
otn

2023/11/08 06:20

gcc を使うなら、静的リンクした実行モジュールを作るのは、 g++ -static foo.cpp -o foo とかでしょうか。 libstdc++.a が使われるはずですが、libstdc++-6.a というのは libstdc++-6.dll との混同?
otn

2023/11/08 06:23

> 4)静的リンクを持ってくればDLL持ってくれば良いのでその静的リンクの libgcc_s_seh.aとlibstdc++-6.aを持ってこようとする。 4)静的リンクすればDLL持っていかなくて良いので ですね。
akptaro

2023/11/08 09:08

>libstdc++.a が使われるはずですが、libstdc++-6.a というのは libstdc++-6.dll との混同? はい。libstdc++-6.dllだったので安易にlibstdc++-6.aと思ってしまいました。 下記のはその通りです。失礼しました。
otn

2023/11/08 10:08

> libstdc++-6.dllだったので安易にlibstdc++-6.aと思ってしまいました。 ファクトを書いているのか、推測・想像を書いているのか、どっちなのかは質問者に分かるようにしましょう。 g++ -static foo.cpp -o foo で解決でしょうか?
akptaro

2023/11/10 09:41

otnさん 仰る通りですね…… >ファクトを書いているのか、推測・想像を書いているのか、どっちなのかは質問者に分かるようにしましょう。 >g++ -static foo.cpp -o foo >で解決でしょうか? 解決ではございません。 うーん静的ライブラリを探すのは大変そうだったのでビルドしてみようとしましたがビルドエラーでした…… 他のやり方を考えてみます。 コメントありがとうございました。
otn

2023/11/10 10:36

> うーん静的ライブラリを探すのは大変そうだったので libstdc++.a は探さなくてもあるはずですね。 libgcc_s_seh.dll に相当するライブラリーですが、libgcc~~なので、普通にビルドできそうな気がするので、探す話ではない気がします。 > ビルドしてみようとしましたがビルドエラーでした…… 静的リンクしたい → 今使って居る処理系に静的リンク機能が無いようだ → g++だと静的リンク出来るらしい ⇒ 処理系をg++に切り替えよう という流れですよね? g++に変えたことで、コンパイラの違いによるビルドエラーということですかね? 原因を調べて対策すれば良いかと思います。 そもそも、今まで使っていたC++処理系に、静的リンクする機能が無いことはちゃんと調べて確実なんでしょうか?そのあたり質問文には何も書いてないのですが。
akptaro

2023/11/14 06:22

otnさん 本当にありがとうございます。 >そもそも、今まで使っていたC++処理系に、静的リンクする機能が無いことはちゃんと調べて確実なんでしょうか?そのあたり質問文には何も書いてないのですが。 フリーの開発環境で作ってとの依頼があり やっていたのですがもう上司にフリーでは無理です…… と言います…… コメントありがとうございました。本当に申し訳ございませんでした。
otn

2023/11/14 06:59

gcc(g++)は無料ですけど?別の意味の「フリー」ですか?
guest

回答1

0

Sorry, I can not understand your question.
But, I recommend you to read this pdf.
this pdf may contain the information you want to know.
Shouldn't you look around page 18 of this pdf?

投稿2023/11/11 01:02

ujimushi_sradjp

総合スコア2179

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問