Bâtiment glew pour Mac OSX
J'ai passé la journée de la difficulté à obtenir mon moteur simple de travailler sur Mac. J'ai SDL de travail et maintenant, la seule chose donner de la difficulté à opengl. Le moteur utilise opengl moderne (shader) et nécessite GLEW. J'ai tout essayé de fink à MacPorts pour l'installer et rien ne fonctionne.
Le plus de succès, j'ai eu a été la construction à partir des sources. J'ai d'abord eu un message d'erreur indiquant 'GL/glu.h' no such file or directory found.
, j'ai Donc renommé le comprend à OpenGL/glu.h
et qui a résolu le problème. Mais maintenant j'ai cette erreur ld: unknown option: -shared
je suis complètement coincé à ce point.
Aussi Id plutôt une accumulation d'électricité statique si quelqu'un sait comment le faire.
comme je l'ai dit, j'ai utilisé Macports et il sayed il avait réussi, mais theres rien n'est installé
Ce n'
sudo port install glew
donner comme une erreur?faut juste besoin d'-L/opt/local/lib et -lglew (en supposant que la bibliothèque est libglew.dylib) donc, juste un répertoire différent de ce que vous faites si vous avez construit vous-même
Tout ce que j'avais à faire était de spécifier opt/local/include comme un répertoire de recherche dans Codeblocks et cela a fonctionné!
OriginalL'auteur Constan7ine | 2012-09-01
Vous devez vous connecter pour publier un commentaire.
GLEW n'est pas une condition préalable à l'utilisation moderne fonctionnalités OpenGL. Il est un méthode pour charger des fonctionnalités étendues, pas la un seul. Vous êtes sur MacOS X, le système d'extension est de peu d'utilité pour vous de toute façon, parce que la version d'OpenGL prise en charge est entièrement déterminée par le système d'exploitation et le cadre. Apple développe les pilotes OpenGL lui-même et les extensions qu'ils fournissent sont seulement ceux, qui sont pour des fonctionnalités qui n'existent pas dans la spécification OpenGL (c'est à dire spécifique au vendeur et EXT). Tous vous avez besoin est une version d'OpenGL Cadre assez nouveau. Toute MacOS X libéré après 2006 peut le faire.
De vérifier la
__APPLE__
macro préprocesseur, et uniquement si l'un des pas été définis incluent la GLEW-tête. Et pour le cas__APPLE__
est défini, définir (vide) macros tourglew…
les appels de fonction en no-ops.Donc, lorsqu'il n'est pas y compris le GLEW-tête, ce qu'apple en-tête est disponible? Je veux dire, à l'ancien programme est en fait l'appel de ces fonctions.
Juste
OpenGL/GL.h
, tout y est sans travail supplémentaire nécessaire. L'avantage de cela est que l'on n'a pas à composer avec le pointeur de la fonction de chargement. L'inconvénient, c'est que la version d'OpenGL être utilisé immédiatement un dur exigence minimale sur la version pour MacOS X par votre programme.Merci, le problème est que l'ancien programme est aussi exigeant GLUT
OriginalL'auteur datenwolf
Vous pouvez utiliser Homebrew pour faire le travail pour vous:
stackoverflow.com/a/17601607/5442132
après cela, écrire votre code en dire
main.cpp
puis compiler à l'aide declang++ main.cpp -lGLEW -framework OpenGL -o <EXECUTABLE_FILE>
( et si vous utilisez d'autres bibliothèques que vous pourriez ajouter-lglfw3 -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo
).OriginalL'auteur yihangho
MacPorts devriez obtenir ces bibliothèques et de leurs dépendances installées pour vous:
Lors de la construction de votre jeu, il est préférable de faire appel à g++ pour le bâtiment et pas de liaison; vous avez juste besoin de se référer à /opt/local pour trouver les en-têtes et les bibliothèques qui ont été installés par MacPorts. Vous pouvez aussi statiquement-lien de la .un fichiers si vous le souhaitez:
Si vous êtes la construction de la ligne de commande, je recommande à l'aide d'un Makefile et construire avec le faire.
OriginalL'auteur Raptor007
Mise à jour 20180912 - ne pas utiliser de GLEW. C'est juste pas la peine...
J'ai installé GLEW à l'aide de la source à l'aide de:
faire GLEW_DEST="$HOME/local" OPT="-march=core2 -O2" installer.tous les
Votre optimisations et les destinations peuvent varier. Cela donne une libGLEW.une, libGLEWmx.un, et leur dylib homologues
$HOME/local/lib
. Lepkgconfig
sous-répertoire comprendra égalementglew.pc
. GLEW n'est pas toujours bien jouer avec les autres. D'avoir à définir des variables globales commeglewExperimental
, ainsi que la nécessité de faire attention à l'ordre d'inclusion des autres en-têtes:<OpenGL/gl3.h>
ou<glfw.h>
, etc.Si je peux vous offrir quelques conseils oublier SDL moderne de la GL de programmation. Si vous souhaitez vous lancer dans pur, moderne GL sur OS X . - pensez à quelque chose comme:
L'installation de GLFW est très facile:
Encore une fois, vos réglages peuvent varier.
20160412: Mes commentaires sur SDL ne sont pas à jour, comme d'autres l'ont souligné. En particulier si vous travaillez sur encore un autre moteur. Je maintiens que glfw3 est un moyen plus facile de faire moderne OpenGL apps sur OSX. C'est très bien écrit et maintenu code, avec un (correctement!) focalisation étroite sur GL et la gestion des événements. De toute évidence, à partir d'un "moteur" de la perspective, SDL2 est de fournir portable étendu vidéo Api, Api audio, filetage Api, etc. Mais avec le C11 et C++11, même un fil API couche d'abstraction est peut-être redondant.
GLEW est problématique en ce que ne peut pas gérer de multiples contextes, sans une vaste intervention de l'utilisateur. Ce n'est pas un problème pour OSX, ce qui fournit un profil de base de l'API et n'a pas besoin de charger la fonction de points". IIRC, GL sur X (DRI?) a ce trop - mais j'ai peut-être mal à propos. Il y a d'autres chargeurs. Je suis toujours en attente de l'un pour les gouverner tous, qui assure différentes fonctions pointeurs sont chargés pour de multiples contextes, si nécessaire, et utilise un thread local (ou même un pthread clé) pour corriger l'expédition, qui peut être généré à partir de la dernière gl.xml de Khronos, ou quiconque...
20180912
Je pense que l'approche la plus simple en est maintenant à l'aide de GLFW afin de fournir un contexte, et de l'utilisation HEUREUX pour résoudre GL pointeurs de fonction. Le seul inconvénient est qu'il n'y a pas de gestion efficace de multiples GL contextes. C'est ce que GLFW est actuellement dans ses démos... j'allais l'oublier GLEW complètement à ce point.
Comme quelqu'un qui travaille sur un projet de loisirs qui utilise OpenGL et SDL, il est difficile de développer une bonne compréhension de l'OpenGL paysage. Je suis à l'aide de SDL2 avec OpenGL, et suis en train de charger les shaders pour la première fois. Cependant, il est difficile de dire quelle est la version de OpenGL, je suis de l'aide. Pouvez-vous (@mlabbe ou autre) suggèrent toutes les ressources susceptibles de les aider avec cela? J'ai surtout trouver étroit tutoriels.
Je recommande la révision de l'Open GL superbible qui correspond à la version d'OpenGL que vous ciblez. Il met l'accent sur le profil de base, ce qui élimine l'héritage des appels. C'est beaucoup plus efficace que de façon aléatoire une recherche sur Google. docs.gl est également utile pour la mise en correspondance des appels vers les versions.
L'exemple d'en-tête ici a été utile... mais pour Xcode sur mac os x 10.11 (en 2016), j'ai dû utiliser "#include <GLFW/glfw3.h>" pour la dernière ligne au lieu de "#include <GL/glfw.h>" qui est répertorié ici.
OriginalL'auteur Brett Hale
Je vous recommande d'aller à http://glew.sourceforge.net et téléchargement du fichier ZIP à droite sur votre Mac. Ensuite, allez dans le Finder et le type de glew.h pour voir le fichier, cliquez sur, obtenir des informations, et de copier le chemin d'accès au fichier. Ensuite, allez dans votre fichier de programme (par exemple, les communes.h) qui contient le
#include <GL/glew.h>
de dépendance, et à le modifier:Ensuite, essayez de compiler votre programme de nouveau, et cette fois, vous ne devriez pas obtenir tout GLEW erreurs.
OriginalL'auteur warship
Aucune des réponses ci-dessus m'a donné ce que je cherchais: une façon rapide d'installation et de Xcode projet avec un statique Glew dépendance.
Type
à partir du répertoire décompressé (ceci installe le .dylib si vous souhaitez lier dynamiquement). Vous avez besoin d'avoir CMake installé.
OriginalL'auteur clearwater82