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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

g++

g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1958閲覧

makefile でlibファイルを作成する方法が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

g++

g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/11/14 08:44

編集2021/11/14 11:35

提示コードなのですが下記の問題のコードのコードですが ar rc コマンドはlinux専用でありwindowsでは存在しませんその場合どうやってlibファイルを作成するにはどういったコマンドを使うのでしょうか? 調べましたがvisual studio のやり方しか出てきません。自分はmakefileを使ったやり方が知りたいです。コンパイラはG++を使いたいです。

環境:windows10

参考サイト: https://www.yunabe.jp/docs/static_library.html

問題のコード

makefile

1$(STATIC_LIB): $(FRAMEWORK_OBJ) 2 ar rc $@ $^ 3 ranlib $@ 4

makefile

1PRG :=program 2STATIC_LIB :=FrameWork.a 3FRAMEWORK_SRC_DIR :=FrameWork/source/ 4GAME_SRC_DIR :=Game/source/ 5FRAMEWORK_OBJ_DIR :=FrameWork/obj 6GAME_OBJ_DIR :=Game/obj 7 8FRAMEWORK_DEP_DIR :=$(FRAMEWORK_OBJ_DIR) 9GAME_DEP_DIR :=$(GAME_OBJ_DIR) 10 11 12FRAMEWORK_SRC :=$(wildcard $(FRAMEWORK_SRC_DIR)/*.cpp) 13GAME_SRC :=$(wildcard $(GAME_SRC_DIR)/*.cpp) 14 15 16FRAMEWORK_OBJ :=$(addprefix $(FRAMEWORK_OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(FRAMEWORK_SRC)))) 17GAME_OBJ :=$(addprefix $(GAME_OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(GAME_SRC)))) 18 19FRAMEWORK_DEP :=$(wildcard $(FRAMEWORK_DEP_DIR)/*.d) 20GAME_DEP :=$(wildcard $(GAME_DEP_DIR)/*.d) 21 22 23 24$(PRG): $(GAME_OBJ) $(STATIC_LIB) 25 $(CXX) $(GAME_OBJ) -o $@ -ldl -lGLESv2 -lassimp -L -l $(STATIC_LIB) -L/usr/local/lib -lGLU -lGL -lglfw3 -pthread -lGL -lGLEW -lfreetype -lX11 26 27 28$(STATIC_LIB): $(FRAMEWORK_OBJ) 29 ar rc $@ $^ 30 ranlib $@ 31 32 33$(FRAMEWORK_OBJ_DIR)/%.o: FrameWork/source/%.cpp 34 $(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@ 35-include $(FRAMEWORK_DEP) 36 37 38$(GAME_OBJ_DIR)/%.o: Game/source/%.cpp 39 $(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/local/include/glm -I/usr/include/libpng16 -I/usr/local/include -pthread -c -MMD -MP $< -o $@ 40-include $(GAME_DEP) 41 42clean: 43 rm -f ./$(FRAMEWORK_OBJ_DIR)/*.o *.out ./$(FRAMEWORK_OBJ_DIR)/*.d *.a $(STATIC_LIB) 44 rm -f ./$(GAME_OBJ_DIR)/*.o *.out ./$(GAME_OBJ_DIR)/*.d *.a $(PRG) 45 46 47

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

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

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

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

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

int32_t

2021/11/14 14:36

そのgccはどういう由来のgccですか? MinGW なら ar.exe が入ってません?
guest

回答1

0

ベストアンサー

gcc であるならふつーにarコマンドがありますんでそのままでいけると思いますが、
コンパイラは何を使うんでしょうか

投稿2021/11/14 10:23

編集2021/11/14 10:24
y_waiwai

総合スコア87747

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問