Pb au linkage
Salut.
J'ai un petit problème à la compilation.
Voilà le message :

Quelques précisions :
- mon projet importe une bibliothèque nommée libbsb (le pb semble venir de là ...)
- cette bibliothèque est compilée PPC + intel et passée à Lipo, donc elle doit être UB propre
- l'erreur à la compilation ne survient quand config release, pas en debug (tout marche bien au niveau de l'appli en débug)
J'ai un petit problème à la compilation.
Voilà le message :

Quelques précisions :
- mon projet importe une bibliothèque nommée libbsb (le pb semble venir de là ...)
- cette bibliothèque est compilée PPC + intel et passée à Lipo, donc elle doit être UB propre
- l'erreur à la compilation ne survient quand config release, pas en debug (tout marche bien au niveau de l'appli en débug)
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et aurais-tu une idée pour isoler et corriger ce problème ?
1) Tu sembles avoir 2 points d'entrée "main"
2) Il ne trouve pas la librairie correspondant à "-lbsb" (qui devrait s'appeller "libbsb" puisque le "-lx" cherche la librairie "libx.a" ou "libx.dylib")
Le point 1 c'est sans doute parce que dans ton projet (ou plutôt dans un fichier objet que tu link avec ton projet, sinon tu auras aussi le souci avec zerolink donc en Debug) il traà®ne un point d'entrée. Par exemple tu link ton projet avec un autre projet sensé être une librairie que tu as compilée, sauf que quand tu l'as compilée tu as mis un main() dedans, sans doute pour créer un executable le temps de tester tes fonctions, mais tu l'as laissé quand tu as créé une lib, et il fait doublon avec le vrai main() de ton projet...
Le point 2 c'est sans doute parce que tu n'as pas installé la librairie "libbsb.a" (mais bon j'imagine que c'est pas le cas) OU que si tu l'as installée (ou compilée en local ?) mais pas dans les répertoires dans lesquels le linker va chercher les librairies (donc du coup il n'arrive pas à la trouver). Dans ce cas il faut ajouter, dans les options de projet, le répertoire dans lequel se trouve ta lib aux répertoires où chercher les libs (ce qui rajoutera l'option "-L/chemin/vers/la/lib/bsb/" à tes options de compilation/linkage)
Et sinon, surtout si libbsb est une lib tierce, vérifie la cohérence des headers et de la lib côté numéro de version.
Pour le point 2, j'ai mis la librairie dans le dossier du projet, changé le path dans Xcode, et l'erreur disparaà®t
Parce que si c'est pour ton logiciel que tu veux vendre, y inclure une bibliothèque sous licence LGPL, c'est chaud !
Ca veut dire que ce genre de librairie ne peut pas être incluse dans un logiciel commercial ?
À moins que tu n'aies envie de devoir rendre publiques les sources de ton projet, c'est le genre de détails où il faut faire super super attention !
En gros, tout ce qui est GPL, LGPL, je crois qu'il vaut mieux éviter quand on est pas dans un projet OpenSource
Pour ce qui est des licences BSD ou Apache, tu peux y aller sans problème...
Ben c'est pour des problèmes de licenceÂ
Ceci-dit, LGPL est probablement moins contraignant que GPL ; mais je crois qu'il faut l'éviter dans les produits commerciaux quand même.
Il faudrait l'avis d'un spécialiste qui connaà®t bien ces deux licences...