Undefined symbol avec PDFKit

ChachaChacha Membre
01:41 modifié dans Vos applications #1
Hello,

Après ces quelques jours d'absence (migration propre vers Tiger), j'ai repris avec enthousiasme mes projets sous le rutilant XCode 2.0... mais déception.
J'ai voulu utiliser le PDFKit dans mon programme LaTeXiT. Bon, déjà , il faut le savoir, il faut inclure <Quartz/Quartz.h> et le framework Quartz.framework (qui contienr QuartzComposer et PDFKit). Mais le problème, c'est que si mon programme compile bien, il ne linke pas !
J'utilise à  un moment donné la constante PDFDocumentSubjectAttribute, mais j'ai droit à  un "Undefined symbol" au linkage : apparemment cette constante n'existe pas dans le framework compilé... J'ai exploré les sources de PDFKit, et cette constante est une NSString, déclarée extern partout... impossible de connaà®tre sa valeur, donc je ne peux même pas la définir moi-même !
Une idée, quelqu'un ?
Au passage : j'ai essayé de recréer le projet intégralement sous XCode 2, mais au final : même problème.

+
Chacha

Réponses

  • ChachaChacha Membre
    01:41 modifié #2
    dans 1117396592:

    Hello,

    Après ces quelques jours d'absence (migration propre vers Tiger), j'ai repris avec enthousiasme mes projets sous le rutilant XCode 2.0... mais déception.
    J'ai voulu utiliser le PDFKit dans mon programme LaTeXiT. Bon, déjà , il faut le savoir, il faut inclure <Quartz/Quartz.h> et le framework Quartz.framework (qui contient QuartzComposer et PDFKit). Mais le problème, c'est que si mon programme compile bien, il ne linke pas !
    J'utilise à  un moment donné la constante PDFDocumentSubjectAttribute, mais j'ai droit à  un "Undefined symbol" au linkage : apparemment cette constante n'existe pas dans le framework compilé... J'ai exploré les sources de PDFKit, et cette constante est une NSString, déclarée extern partout... impossible de connaà®tre sa valeur, donc je ne peux même pas la définir moi-même ! (enfin, si, je peux, dans ce cas là  ça linke, mais le programme ne fait rien quand j'essaye de l'utiliser, forcément, elle ne doit pas être la bonne clé de mon dico d'attributes)
    Une idée, quelqu'un ?
    Au passage : j'ai essayé de recréer le projet intégralement sous XCode 2, mais au final : même problème.

    +
    Chacha
  • VeillardVeillard Membre
    01:41 modifié #3
    ???
  • ChachaChacha Membre
    mai 2005 modifié #4
    Heu... Dois-je comprendre que je n'ai pas été très clair ?
    Effectivement, je peux simplifier mes pleurs. Essayez de créer un projet Cocoa de base, et rajoutez simplement un NSLog dans le main.

    <br />#import &lt;Cocoa/Cocoa.h&gt;<br />#import &lt;Quartz/Quartz.h&gt;<br /><br />int main(int argc, char *argv[])<br />{<br />&nbsp; NSLog(@&quot;%@&quot;, PDFDocumentSubjectAttribute);<br />&nbsp; return NSApplicationMain(argc,&nbsp; (const char **) argv);<br />}<br />
    

    ça compile, mais ça ne linke pas (en Deployment, car en Development il y a le zero-link), et de toutes manières, ça plante à  l'exécution.

    +
    Chacha
  • amnesicamnesic Membre
    01:41 modifié #5

    J'ai exploré les sources de PDFKit, et cette constante est une NSString, déclarée extern partout... impossible de connaà®tre sa valeur, donc je ne peux même pas la définir moi-même !


    Argg ça sent la boulette d'Apple ça :(
    essaye avec la correspondance :

    <br />PDFDocumentTitleAttribute  --&gt; @&quot;Title&quot;<br />PDFDocumentAuthorAttribute  --&gt; @&quot;Author&quot;<br />PDFDocumentSubjectAttribute  --&gt; @&quot;Subject&quot;<br />PDFDocumentCreatorAttribute  --&gt; @&quot;Creator&quot;<br />PDFDocumentProducerAttribute  --&gt; @&quot;Producer&quot;<br />PDFDocumentCreationDateAttribute  --&gt; @&quot;CreationDate&quot;<br />PDFDocumentModificationDateAttribute  --&gt; @&quot;ModDate&quot;<br />PDFDocumentKeywordsAttribute  --&gt; @&quot;Keywords&quot;<br />
    


    Tu as fait remonter le bug à  Apple ?  (http://bugreport.apple.com/)
  • ChachaChacha Membre
    01:41 modifié #6
    dans 1117622651:

    Argg ça sent la boulette d'Apple ça :(
    ...
    Tu as fait remonter le bug à  Apple ?  (http://bugreport.apple.com/)

    Ben avant de faire remonter, je voulais être sûr que c'était un bug... Parce qu'il me paraà®t bizarre, depuis le temps que Tiger est en développement, d'avoir un trou aussi béant dans les fonctionnalités de base d'une API ! Si encore c'était dans un sombre coin reculé, je ne dit pas, mais là ...
    Bon, enfin, dans le doute, je vais faire un bug report.
    +
    Chacha
  • amnesicamnesic Membre
    01:41 modifié #7
    dans 1117627246:

    Ben avant de faire remonter, je voulais être sûr que c'était un bug... Parce qu'il me paraà®t bizarre, depuis le temps que Tiger est en développement, d'avoir un trou aussi béant dans les fonctionnalités de base d'une API ! Si encore c'était dans un sombre coin reculé, je ne dit pas, mais là ...


    Oui comme toi je suis assez circonspect sur ce problème, mais en tout cas tu avais bien isolé le problème et je le reproduis le problème ici donc un bugreport n'est pas superflue, je pense.

    Sinon avec les correspondances @Title et autres ça passe ?

  • ChachaChacha Membre
    01:41 modifié #8
    dans 1117647279:

    Sinon avec les correspondances @Title et autres ça passe ?

    Ah, oui, au fait, je ne t'ai pas remercié !
    "Creator" et "Keywords", ça marche. à‰trangement, "Subject", non, mais je me suis débrouillé avec les deux autres. Bien joué ! (moi j'avais essayé de remplacer par "PDFDocumentCreatorAttribute", etc. Et ça ne marchait pas, bien sûr)
    J'ai fait le bug report.

    +
    Chacha
  • amnesicamnesic Membre
    juin 2005 modifié #9

    "Creator" et "Keywords", ça marche. à‰trangement, "Subject", non, mais je me suis débrouillé avec les deux autres. Bien joué ! (moi j'avais essayé de remplacer par "PDFDocumentCreatorAttribute", etc. Et ça ne marchait pas, bien sûr)

    Je te proposais d'essayer ces strings car c'est celles qui sont utilisées dans le sample code Voyeur : (méthode loadDocumentInfo)

    file:///Developer/Examples/Quartz/PDF/Voyeur/VoyeurDocument.m

    Si cela peut de donner tes pistes...
Connectez-vous ou Inscrivez-vous pour répondre.