Pages: 1 2
Avec le premier exemple du sdk "plussz"
Creer un nouveau projet :
- empty
- C
Ajouter "plussz.c" au projet
Ajouter :
#define WIN_VERSION 1 #define WIN_EXT_VERSION 1
avant l'inclusion de "ext.h"
(On peut aussi les passer en paramètre au compilateur normalement).
Faites un nouveau fichier sans l'ajouter au projet (faut pas qu'il compile en tout cas), sauver le sous "nomduprojet.def" (plussz.def).
Tapez (remplacez les noms par c'qui faut):
;plussz.def LIBRARY plussz EXPORTS main
Aller dans les options du projet (Alt-P):
Premier onglet -> Win32dll
Compilateur -> Support de la norme ANSI : No
Ajoutez MaxAPI.lib dans l'éditeur de lien ET
--def plussz.def
Modifiez le repertoire d'inclusion pour qu'il trouve ext.h (ou modifiez le chemin).
Optionnel
Dans construction changez le nom du fichier de sortie en "pluss.mxe", et le répertoire mxe de max dans la sortie des executables.
Compilez !
Hors ligne
Tu mets MaxAPI.lib et --def plussz.def à la suite dans l'éditeur de liens?
Je ne trouve pas ce fameux répertoire mxe de max afin de le mettre dans la sortie des executables de dev c++.
Hors ligne
Vaut mieux mettre un retour ligne entre les deux.
Pour le répertoire il a peut-être un autre nom, cherche des mxe.
Hors ligne
quand je compile il y a un problème lié au fichier .mxe voici le message d'erreur:
all: all-before "E:/Program Files/Cycling '74/mxe/pluss.mxe" all-after
Je crois que j'ai mal indiqué le répertoire de destination, les seuls fichiers .mxe que j'ai se trouvent dans un fichier .zip.
Peut tu me donner la ligne que tu as mis ou me donner le nom de ton répertoire .mxe pour une comparaison.
merci
Hors ligne
D:Program FilesCycling '74MaxMSP 4.5mxe
Mais oublie ça si ça ne marche pas, c'est pas important, faut juste copier/coller/renommer ton mxe dans le dossier de max après compilation.
Hors ligne
le problème c'est que après compilation j'ai une erreur liée aux liens.
peut être que ça viens du fichier où il a:
;plussz.def
LIBRARY plussz
EXPORTS
main
J'ai mis cela tel quel..
mon fichier plussz.mxe doit se trouver dans le repertoire Max Msp 4.5 c'est ça?
Je suis désolé de te demander ça mais peut tu me faire un récapitalatif détaillé et simplifié de tout ça stp afin que je puisse vérifier si je n'ai pas fait d'erreur...encore merci
Hors ligne
>J'ai mis cela tel quel..
Normalement ça devrait marcher (enfin je sais pas ce que c'est exactement ce fichier def hein), faut juste que les noms soit consistants j'imagine.
>mon fichier plussz.mxe doit se trouver dans le repertoire Max Msp 4.5 c'est ça?
Oui si t'as choisi ce repertoire comme sorti des executables, sinon il te le met dans le même dossier que le projet (.dev). Mais si t'as des erreurs de linkage il va pas te le faire.
Tu as quoi comme erreurs ? (copie colle)
Et il faut pas que tu compile le fichier def, c'est à dire qu'il ne doit pas apparaitre dans la liste des fichiers du projet.
Je peux pas faire mieux que ce qui y'a en dessus comme explications. Ce que je peux faire plutot c'est te filer mes fichiers :
Hors ligne
bon ya pas moyen ça ne fonctionne pas...
voici l'erreur :
# Project: plussz
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = essai1/plussz.o $(RES)
LINKOBJ = essai1/plussz.o $(RES)
LIBS = -L"F:/Dev-Cpp/lib" MaxAPI.lib --def plussz.def
INCS = -I"F:/Dev-Cpp/include" -I"F:/Dev-Cpp/essai1"
CXXINCS = -I"F:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"F:/Dev-Cpp/include/c++/3.4.2/backward" -I"F:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"F:/Dev-Cpp/include/c++/3.4.2" -I"F:/Dev-Cpp/include" -I"F:/Dev-Cpp/essai1"
BIN = "E:/Program Files/Cycling '74/MaxMSP 4.5/pluss.mxe"
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before "E:/Program Files/Cycling '74/MaxMSP 4.5/pluss.mxe" all-after
clean: clean-custom
${RM} $(OBJ) $(BIN)
DLLWRAP=dllwrap.exe
DEFFILE="E:/Program Files/Cycling '74/MaxMSP 4.5/libpluss.def"
STATICLIB="E:/Program Files/Cycling '74/MaxMSP 4.5/libpluss.a"
$(BIN): $(LINKOBJ)
$(DLLWRAP) --output-def $(DEFFILE) --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN)
essai1/plussz.o: essai1/plussz.c
$(CC) -c essai1/plussz.c -o essai1/plussz.o $(CFLAGS)
Le message all: all-before "E:/Program Files/Cycling '74/MaxMSP 4.5/pluss.mxe" all-after est en rouge, c'est encore ce problème de lien...
Hors ligne
Il t'affiche le makefile ? jamais vu ça :message:
Le mien est sensiblement pareil :
# Project: Projet1 # Makefile created by Dev-C++ 4.9.9.2 CPP = g++.exe CC = gcc.exe WINDRES = windres.exe RES = OBJ = plussz.o $(RES) LINKOBJ = plussz.o $(RES) LIBS = -L"i:/Dev-Cpp/lib" lib/MaxAPI.lib --def plussz.def INCS = -I"i:/Dev-Cpp/include" CXXINCS = -I"i:/Dev-Cpp/include/c++" -I"i:/Dev-Cpp/include/c++/mingw32" -I"i:/Dev-Cpp/include/c++/backward" -I"i:/Dev-Cpp/include" BIN = pluss.mxe CXXFLAGS = $(CXXINCS) -w -fexpensive-optimizations -O1 CFLAGS = $(INCS) -w -fexpensive-optimizations -O1 RM = rm -f .PHONY: all all-before all-after clean clean-custom all: all-before pluss.mxe all-after clean: clean-custom ${RM} $(OBJ) $(BIN) DLLWRAP=dllwrap.exe DEFFILE=libpluss.def STATICLIB=libpluss.a $(BIN): $(LINKOBJ) $(DLLWRAP) --output-def $(DEFFILE) --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN) plussz.o: plussz.c $(CC) -c plussz.c -o plussz.o $(CFLAGS)
A la ligne fautive: all: all-before pluss.mxe all-after
Parce que j'ai pas précisé de dossier de sorti.
Essai de le virer.
Essai avec mon zip.
Hors ligne
bon je ne plus l'erreur...
mais j'en ai encore une petite en bas(mon fichier de dest je l'ai appelé ooooo pour le repérer plus facilement)...
Fichier:
E:Program FilesCycling '74max-projectsProjet1Makefile.win
Message:
[Build Error] No rule to make target `"../01.', needed by `ooooo.mxe'. Stop.
Je sais pas se qui cloche...problème de destination?
Hors ligne
dernière question, tu as essayé avec Microsoft Visual C++ 2005 Express Edition(fait partie de Visual Studio et il est gratuit, projets en .vcproj)...
tu va rire, je n'ai pas réussi à faire d'objet, pourtant je crois suivre à la lettre le tuto, mais je dois mal linker...bon j'y retourne
Hors ligne
Salut, je me suis renseigné et apparemment programmer une timeline en C pour Max est source de bogues, donc je pense que je vais laissé tomber cette idée.
On m'a parlé de l'écriture de type partition et de la cue list, tu connait ces 2 choses?
Hors ligne
Programmer est la source des bogues, quoi que tu programme
Bon faire une timeline (c'est à dire un objet graphique que tu peux éditer, non ?) ça me semble assez ambitieux quand même, surtout pour commencer.
Sinon non je sais pas ce que c'est.
Par contre j'ai toujours pas compris ce que tu voulais faire dans cette histoire.
Hors ligne
En fait c'est la timeline de max qui est source de bogue.
Nous voulons faire une timeline plus simple en C pour une application standalone.
Une fois le programme compilé, comment fait tu pour utiliser le fichier .mxe dans max?
C'est bien d'être ambitieux non?
Hors ligne
>Une fois le programme compilé, comment fait tu pour utiliser le fichier .mxe dans max?
Ben comme un autre tu tape son nom :
[nomdumxe]
>C'est bien d'être ambitieux non?
C'est bien oui !
Hors ligne
Pages: 1 2