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

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

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

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

C++

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

Q&A

解決済

1回答

1519閲覧

XcodeでCommand Line Toolとして作成したC++のビルド出力ファイルを.app形式にしたい

akira_kano1101

総合スコア25

GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

C++

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

0グッド

0クリップ

投稿2020/02/23 23:39

開発環境

・macOS High Sierra 10.13.6
・Xcode 10.1(Command Line Tool)
・GLFW

前提・実現したいこと

Xcodeでソフト開発をしているものです。
ビルド出力されるファイルの形式で質問です。

XcodeでプロジェクトをCommand Line Toolとして作成し下記ソースコードをmain.cppに打ち込みビルドすると、出力されるファイルがUNIX実行ファイルとなっています。
これを.app形式として出力されるようにしたいのですが設定方法もしくは実現するための何らかの方法があったりするのかがわかりません。

どうかご教示いただけないでしょうか。

ここでも同様の質問をされている方がいらっしゃいました。
https://q.hatena.ne.jp/1396251367

C++

1#include <iostream> 2#include <unistd.h> 3#include <GLFW/glfw3.h> 4 5int main(int argc, char **argv) 6{ 7 GLFWwindow *window = glfwCreateWindow(256, 256, "Hello world!", NULL, NULL); 8 while (glfwWindowShouldClose(window) == GL_FALSE) 9 { 10 glfwPollEvents(); 11 } 12 13 glfwTerminate(); 14 return 0; 15}

試したこと

上記によりビルド出力されたファイルには拡張子がありませんが、そのファイルに直接.appをつけて実行したところ、ターミナルが起動せずウィンドウが立ち上がるという不思議な現象を確認しました。

ただ、そうではなくてあくまで正攻法として.app形式ファイルを作りたいのでその方法がわかれば教えていただけたら助かります。

よろしくお願いします。

補足情報

######Header Search Paths(Build Settings)

/usr/local/include

######Library Search Paths(Build Settings)

/usr/local/lib /usr/local/Cellar/glfw/3.3.2/lib

######Link Binary With Libraries(Build Phases)

OpenGL.framework libglfw.3.3.dylib

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

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

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

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

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

guest

回答1

0

ベストアンサー

https://github.com/VirgilMing/OpenGL-Hello-Rectangle ってのを見つけました。
手元の環境 (macOS 10.15.3, Xcode 11.3.1) では、以下の手順で動きました。

$ git clone https://github.com/VirgilMing/OpenGL-Hello-Rectangle.git $ brew install glew glfw glm # 依存ライブラリ $ brew install grep # GNU grep (ggrep という名前でインストールされます) $ cd OpenGL-Hello-Rectangle/hello-cube # hello-rect も同様 $ vi Makefile # CC と LD を c++ (Apple の Xcode 付属 Clang C++) に変更 $ mkdir build bin bin/unix-exec $ make $ mv bin/macos-bundle/hello-cube.app ~/Desktop # お好きな場所へどうぞ

関連: opengl - C++: Unable to read resource files in macos bundle - Stack Overflow

投稿2020/02/24 00:17

hoshi-takanori

総合スコア7895

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

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

akira_kano1101

2020/02/24 01:25

早々のご回答ありがとうございます。 ご教示いただいたコマンドをターミナルで実行すれば.appファイルが生成されうまく動くのですね。 そこまではなんとなく理解しました。 ですが私は実はmacを使いたてのまだまだ初心者です。 g++やClangなどの意味をあまり理解できていません。 ですのでvi Makefileの行で変更とコメントいただいているのですが、具体的にどう書き換えて保存しmakeすれば良いのかがいまいちピンときません。 CC = ? LD = ? どう打ち換えれば良い?という状態です。 重ねた質問になりますがよろしければご教示いただけないでしょうか。 どうぞよろしくお願いします。 ちなみに1行目のコマンドを実行した時、ユーザ名とパスワードを求められてどうすれば良いかわかりませんでした。 そこでgitコマンドを使う代わりにクローンをダウンロードして落としてきてそのフォルダ内でターミナルを開いて検証を行っています。
hoshi-takanori

2020/02/24 02:06

初心者さんの質問だとは思わなかったので簡潔に書いてしまいましたが、いろいろ説明が必要そうですね。 まず、Mac アプリの .app ですが、Finder からはファイルに見えますが、実はフォルダになっていて、中にいろんなファイルを入れられるようになってます。また、通常の Mac アプリはドラッグ&ドロップへの対応など、OS とのやりとりがいろいろあって、そのためにはちゃんと Mac 用のコードを書く必要があります。が、ここで紹介したのは最低限ダブルクリックしたら動くものになります。 git からのダウンロードは git clone でなくても大丈夫です。brew はたぶんお使いですよね。で、g++ や clang c++ というのはどちらも C や C++ 言語などのコンパイラで、clang は Xocde を入れれば付いてきます。g++ は gcc (GNU Compiler Collection) という有名なツールセットの一つで、C++ のコンパイラです。brew install gcc で入れて、g++ main.cpp などとして使います。自分は g++ は入れてなかったので clang(gcc に対抗して Swift 言語の作者さんが作ったもので、Apple はもともと gcc を使ってましたが、10 年くらい前にこっちに乗り換えました)の中の C++ コンパイラである c++ コマンドを使いました。多分 g++ でもいけると思います。 Makefile の書き換え方ですが、自分は慣れてるので vi を使いましたが、もちろんお好きなエディタで構いません。(この手の手順に vi ファイル名(または vim ファイル名)と書いてあったら、そのファイルを好きなエディタで書き換えてね、という意味になります。)で、書き換え方ですが、Makefile を開くと先頭に CC = g++-8 LD = g++-8 と書いてあります。これはコンパイルに g++8 を使うという指示です。自分はこれを CC = c++ LD = c++ としました。(g++8 というのは g++ の ver 8 ってことです。g++ の最新版はたしか 9 ですが、この人はなぜかちょっと古いバージョンを使っているようです。) あとは手順通りにできると思います。頑張ってください。
akira_kano1101

2020/02/24 08:34

重なる質問、丁寧にアドバイスをくださってありがとうございます。 自分で調べて、「.app」ファイルが実はフォルダ構造という事実はどこかで知っていました。 やはりそうなんだと勉強になりました。 GitHubについては今までさわったこともありませんでした。便利そうなので、これから勉強していこうと思い、書籍を購入してきました。 brewは覚えたてですが使っています。 C++もたくさんの種類があるのですね。 今回の問題は私にとって簡単に解決できるものではなくて、完成まで少し時間がかかりそうです。 ですので、まずは教えていただいたことをヒントに、自分なりに解決していこうと思います。 貴重なアドバイスいただいたこと、心から感謝しています。ありがとうございました。 また機会があれば、よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問