PDA

Voir la version complète : Quelle version pour compiler un module C++ ?



César Vonc
29/12/2015, 16h55
Salut,

J'ai récemment compilé un module C++ sous Windows avec le SDK de la R17, mais je me suis rendu compte que ce n'était pas rétrocompatible et ne fonctionnait pas sous R16.

Du coup je ne comprends pas bien l'intérêt, vaut-il mieux compiler sur une vieille R13 en espérant que ça marche dans les versions ultérieures, ou bien compiler à chaque version de C4D et proposer différentes versions du module ?


Est-ce que le fait de compiler sous Windows 7, 8 ou 10 change quelque chose ? Si par exemple on compile avec 10, est-ce que ça marchera sous 7 ?

De même pour OSX, j'ai prévu de me monter une VM avec Maverick, mais déjà Xcode ne veut pas s'installer car le SE serait trop vieux et je pige rien au système de gestion des programmes des Mac. Donc je pensais prendre Capitaine machin chose mais n'ayant pas de Mac j'aimerais savoir ce qui est rétrocompatible ou non.


J'aimerais savoir un peu comment vous vous organisez, si vous avec une VM par système d'exploitation, si le tout dernier Xcode ou Visual Studio peut compiler les projets du SDK des R13 jusqu'à la R17, ou si vous avez aussi une VM par version de C4D ou bien que sais-je encore...

sansalvador
29/12/2015, 17h51
JE n'y connais rien en code , mais si tu utilises l'OSX Maverick il te faudra te trouver une version 5.0.1 de Xcode qui soit dit en passant fait un peu plus de 2 go alors que la v7.2 en fait plus de 4 et comme tu l'as constaté n'est pas compatible avec Maverick, et bien sur ne compte pas sur la pomme véreuse pour te proposer un téléchargement de la 5.0.1
Voila , un com qui ne sert pas à grand chose , mais qui me donne l'air presque intelligente :biggrin:

valkaari
30/12/2015, 00h42
Personnellement je suis ces recommendations : https://developers.maxon.net/?page_id=1108
Il y a eu une grosse modif avec le SDK de la r15 et donc je ne travail plus que sur r15+ pour les plugins. Après pour un client c'est différent.

J'utilise xcode 4.6.3 (r15), 5.1.1 (r16, abandonné avec la sortie de la r17) et 6.2 (r17) sous maverick (10.9.5)
Je code donc sur la r17 avec xcode 6.2 avec ce plugin https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin

Quand j'ai terminé, je lance la 4.6.3 et je compile avec la r15. (après avoir fait des modif)
Par exemple, j'ai remarqué de grosses différences de performance dans le multi cpu entre la r15 et la r17.



Sous windows je compile sous windows 10 et donc R15 + Visual Studio 2012. (le fichier maxon est crée avec cette version)



Donc je te dirais bien install maverick avec xcode 4.6.3 et tu pourra utiliser directement le fichier xcode fournis avec le sdk de la r15.


ps : pour avoir xcode il faut un apple ID (gratuit) et aller chercher là https://developer.apple.com/downloads/

César Vonc
30/12/2015, 11h39
Merci Val pour ces précisions !

Donc on peut installer plusieurs versions de Xcode sur Maverick ?


Pas mal, Sansal, j'en suis presque impressionné. :icon_mrgreen:

valkaari
30/12/2015, 15h36
Quand tu fais une mise à jour il la fait sur xcode.app qui se trouve dans le répertoire /Applications/

Mais tu peux créer un sous répertoire et mettre tes anciennes version dedans avant de faire la mise à jour. Il change également les outils en ligne de commandes mais pour cinema4D ça ne change rien.

xs_yann
30/12/2015, 16h03
Je viens tout juste de me remettre au c++ depuis le début du mois donc je serais pas d'une grande aide, mais je peux déjà dire que j'ai réussi à compiler les SDK de la R11.5 à R17 sur OS X El Capitan avec Xcode 7.1 et de la R12 à R17 sur Windows 7 avec Visual Studio Express 2013.

J'ai pas encore fais de tests de compatibilité entre releases et je ne suis pas trop au fait des changements à effectuer dans le code pour la retro-compatibilité mais quand j'aurais plus d'info je posterais dans ce sujet.

Merci pour le plugin Val, je vais essayer ça.

valkaari
30/12/2015, 18h10
Tu fais bien de préciser yann

J'ai souvent perdu pas mal de temps à essayer de compiler un sdk avec une version xcode ou visual studio qui n'était pas celle prévu. En utilisant la version recommandé par maxon ça marche beaucoup plus rapidement sans modifications (enfin celle de base)

Il y a aussi ce projet à suivre, ça pourrait rendre certaines tâches plus facile.
https://github.com/craftr-build/maxon.c4d
Je comprenais déjà rien au premier projet celui ci à l'air plus simple.... enfin .... au sens informatique...

César Vonc
30/12/2015, 20h11
Alors j'ai pu compiler en R15 et R17 avec Visual Studio 2013 sous W7 sans avoir eu besoin de faire aucune modif dans mon code qui était prévu pour la R17, ce qui m'étonne un peu, j'ai juste deux, trois avertissements sans gravité.

Ça semble fonctionner sans soucis en R15 et R16, du coup. J'imagine que ça dépend des méthodes utilisées. Je ne pense pas aller en-dessous de la R15 car apparemment c'est là que de nombreuses méthodes ont été dépréciées (GetReal en GetFloat et compagnie).



Je termine mon installation de Mavericks et je vous tiens au courant !

César Vonc
31/12/2015, 10h53
Pas de soucis pour compiler sous Mavericks avec Xcode 6.2 en R17, par contre la 4.6.3 plante à l'ouverture depuis que j'ai installé la 6.2.

Du coup j'essaie de compiler la R15 avec Xcode 6.2 mais il me génère 23 avertissements et deux erreurs car il ne trouve pas les fichiers :
resource/_api_lib/c4dapi.py
resource/_api_lib/copytypeviewer.pl.

J'ai vu sur plugincafe qu'il suffisait de créer ces fichiers vides, mais ça me paraît moyen comme solution. Avez-vous ces fichiers dans votre R15 OSX ? Notez que j'ai téléchargé la démo de la R15, ce qui, d'après Maxon, est suffisant pour compiler.

xs_yann
31/12/2015, 11h19
Effectivement ces fichiers sont absents sur la Démo.
Je te les ai envoyé par MP.

César Vonc
31/12/2015, 11h36
Ah ! Merci xs_yann, bon j'ai toujours 46 avertissements mais au moins le SDK compile. ^^

valkaari
31/12/2015, 16h31
Sinon quand xcode crash, tu as un bouton signaler, il t'affiche alors le log de crash. Dedans tu as en début de fichier le "plugin" qui pose problème. Suffit d'aller dans le répertoire en question (indiqué en dessous)

Les applications sur mac sont en fait des paquet que l'on peut parcourir comme des répertoires. Si tu fais un clic droit sur Xcode tu peux utiliser la commande "afficher le contenu du paquet". Tu prends le plugin qui merde tu le déplace sur le bureau et tu test.


ps : puisqu'on te dit que mac c'est plus simple à utiliser et que ça marche vachement mieux !!!!!

César Vonc
31/12/2015, 20h18
Ce qui plante d'après le log est Xcode [656] situé dans Applications/Xcode 4.6.3.app/Contents/MacOS/Xcode. :death:
Ou alors j'ai pas compris le log.




Sinon, j'arrive à compiler mon module pour la R17, mais ça déconne encore dans la R15... (Xcode 6.2)

J'inclus #include <thread> pour utiliser std::this_thread::sleep_for dans mon code, mais il me pète : 'thread' file not found.


Je vois sur la toile qu'il faut ajouter CONFIG += C++11 dans le fichier .pro, seulement voilà, qu'est-ce que le fichier .pro, tout le monde semble le savoir sauf moi. : p

Si j'ai bien compris, c'est pour utiliser C++ 11, mais je vois dans l'onglet Aple LLVM 6.0 - Language - C++ qu'il utilise déjà :
C++ Language Dialect : C++11 [-std=c++11]

Ainsi que libstdc++.

Donc je ne comprends pas pourquoi ça ne marche pas et ne trouve pas ce fichier.


Plus simple, en effet. : /

César Vonc
31/12/2015, 21h40
Bon en fait je suis con car il y a GeSleep pour faire ça. ^^ Merci Maxon !

sansalvador
01/01/2016, 12h22
Bon en fait je suis con

Et bien , une bonne résolution pour 2016 , tu avoues :D

César Vonc
01/01/2016, 12h34
Et doublement car je viens de voir que compiler avec une version démo limitait le module à la version démo de C4D, c'est vraiment naze !

César Vonc
01/01/2016, 13h11
Bon, et maintenant sur une vraie R15, Xcode ne veut plus me compiler le SDK :

/Applications/Xcode 6.2.app/Contents/Devlopper/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't create output file: /./lib_api_release.a (Permission denied)


J'ai mis toutes les permissions à tout le monde pour Applications et le dossier de C4D et ça veut toujours pas. Pff ça commence à me gonfler OSX.

valkaari
01/01/2016, 17h38
Et bonne année.


le fichier lib_api_release.a doit être crée dans le répertoire Cinema4D R15/ressource/_api_lib Vérifie les droits là bas aussi.

César Vonc
01/01/2016, 19h51
Pareil, permission non accordée.


Mais problème « résolu », je me suis créé une seconde VM avec la R15 et Xcode 4.6.3 et là tout fonctionne sans aucun avertissement !

Merci à ceux qui m'ont suivi. : p