Αλλα

Τα σύμβολα σφάλματος Mac δεν βρέθηκαν για την αρχιτεκτονική x86_64

Εκεί

Πρωτότυπη αφίσα
22 Ιουλίου 2016
  • 22 Ιουλίου 2016
Γεια σε όλους,

Εργάζομαι σε ένα έργο που συνίσταται στη μεταγλώττιση μιας εφαρμογής Windows σε Mac. Η εφαρμογή είναι γραμμένη σε C++ με Qt. Αποτελείται από βιβλιοθήκες και το κύριο έργο:
http://hpics.li/d8bb2ec
Το έργο χρησιμοποιεί μια εξωτερική βιβλιοθήκη, την ODA, για τη διαχείριση αρχείων .dwg και .dgn.
Το πρόβλημα είναι όταν μεταγλωττίζω την πρώτη βιβλιοθήκη (MdCore), λαμβάνω ένα σφάλμα : το σύμβολο(α) δεν βρέθηκε για την αρχιτεκτονική x86_64.
Στην αρχή πρόσθεσα -stdlib=libstdc++ στο όρισμα qmake αλλά το Qt μου δημιούργησε αρχεία 0 byte, οπότε δεν ήταν η λύση.
Έχω δοκιμάσει διαφορετική έκδοση της βιβλιοθήκης ODA: 32 bit, 64 bit για OSX 10.7 και 10.11. (Ο Mac μου είναι σε OSX 10.11)
Έκανα την εντολή 'αρχείο' στις βιβλιοθήκες μου και εδώ το αποτέλεσμα:

:
.a: τρέχουσα ar τυχαία βιβλιοθήκη αρχειοθέτησης

.dylib:
Καθολικό δυαδικό Mach-0 με 2 αρχιτεκτονικές
(για αρχιτεκτονική x68_64): Mach-0 64-bit δυναμικά συνδεδεμένη κοινόχρηστη βιβλιοθήκη x86_64
(για αρχιτεκτονική i386): Mach-0 δυναμικά συνδεδεμένη κοινόχρηστη βιβλιοθήκη i386

Προσπάθησα να κάνω μεταγλώττιση σε 32 και 64 bit αλλά δεν αλλάζει τίποτα. Είμαι σε αυτό το πρόβλημα για δύο εβδομάδες, δεν ξέρω τι μπορώ να κάνω

Έχω φτιάξει ένα θέμα στο φόρουμ του Qt ίσως βρείτε περισσότερες πληροφορίες:
https://forum.qt.io/topic/69171/compile-generate-0-byte-files-on-os-x/11
https://forum.qt.io/topic/69171/compile-generate-0-byte-files-on-os-x/11
Αν κάποιος έχει ιδέα ή λύση θα με ενδιαφέρει

Ευχαριστώ ! ντο

cqexbesd

4 Ιουνίου 2009


Γερμανία
  • 22 Ιουλίου 2016
Δεν ξέρω τίποτα για το qmake, αλλά ίσως θα έπρεπε απλώς να δημοσιεύσετε ποιες είναι οι εντολές του μεταγλωττιστή σας για μεταγλώττιση και ίσως κάποιος θα μπορέσει να δει τι συμβαίνει.

Εκεί

Πρωτότυπη αφίσα
22 Ιουλίου 2016
  • 22 Ιουλίου 2016
γεια cqexbesd, ευχαριστώ για την απάντησή σου, εδώ είναι η αρχή της παραγωγής:

17:34:10: Έναρξη: '/Users/developpement/Qt/5.7/clang_64/bin/qmake' /Users/developpement/Desktop/Mediacad2/MdCore/MdCore.pro -r -spec macx-clang CONFIGCON+G+=debug x86_64 CONFIG+=qml_debug

17:34:10: Η διαδικασία '/Users/developpement/Qt/5.7/clang_64/bin/qmake' έχει ολοκληρωθεί κανονικά

17:34:10: Έναρξη: '/usr/bin/make'

... ντο

cqexbesd

4 Ιουνίου 2009
Γερμανία
  • 24 Ιουλίου 2016
Αυτό που εννοούσα ήταν ότι το qmake είναι απλώς ένα εργαλείο για την κλήση του μεταγλωττιστή. Μπορείτε να βρείτε τη γραμμή όπου το qmake καλεί τον μεταγλωττιστή; Προφανώς δεν τον καλεί σωστά διαφορετικά τα πράγματα θα λειτουργούσαν. Είναι τουλάχιστον από κάπου να ξεκινήσει.

Εκεί

Πρωτότυπη αφίσα
22 Ιουλίου 2016
  • 25 Ιουλίου 2016
Νομίζω ότι είναι εδώ:
Κωδικός: |_+_|
στην έξοδο μεταγλώττισης μου έχω αυτές τις γραμμές αρκετές φορές, αλλά αλλάζει μόνο η τελευταία γραμμή (αλλάζει το όνομα του αρχείου)

Επεξεργασία : εδώ υπάρχουν οι ίδιες γραμμές αλλά με κενά μεταξύ τους
Κωδικός: |_+_| Τελευταία επεξεργασία από συντονιστή: 25 Ιουλίου 2016 ντο

cqexbesd

4 Ιουνίου 2009
Γερμανία
  • 25 Ιουλίου 2016
Θα πρέπει επίσης να υπάρχει μια γραμμή σύνδεσης - π.χ. μια γραμμή όπου το clang++ καλείται χωρίς το όρισμα -c. Μπορεί να είναι χρήσιμο εάν μπορείτε να επικολλήσετε έναν σύνδεσμο σε ολόκληρη την έξοδο στην πραγματικότητα.

Εκεί

Πρωτότυπη αφίσα
22 Ιουλίου 2016
  • 26 Ιουλίου 2016
Δεν νομίζω ότι είναι δυνατό να αλλάξουμε ορίσματα του μεταγλωττιστή. Μπορεί να το κάνω με την προτροπή.
Εδώ είναι το πλήρες αποτέλεσμα (είναι πολύ πολύ μεγάλο! 100.000 γραμμές): http://textup.fr/171939hC


Επεξεργασία : Έκανα μεταγλώττιση με την προτροπή, ώστε να έχω περισσότερες γραμμές στην έξοδο και οι τελευταίες γραμμές είναι ενδιαφέρουσες:


Μη καθορισμένα σύμβολα για την αρχιτεκτονική x86_64:

Κωδικός: |_+_| Τελευταία επεξεργασία από συντονιστή: 26 Ιουλίου 2016 ντο

cqexbesd

4 Ιουνίου 2009
Γερμανία
  • 26 Ιουλίου 2016
Νομίζω ότι η έξοδος 100K για μια κατασκευή από οτιδήποτε άλλο εκτός από το πιο περίπλοκο σύστημα είναι πιθανώς ένα σημάδι ότι τα πράγματα κάπου έχουν πάει στραβά - αλλά αυτό είναι ένα πιο γενικό σχόλιο για την κατάσταση του κλάδου.

Επιστροφή στο συγκεκριμένο πρόβλημά σας. Δεν βλέπω τα σφάλματα σύνδεσης που δημοσιεύσατε στο 'πλήρης έξοδος', ωστόσο αυτό φαίνεται να είναι απλά σφάλματα σύνδεσης. Όπως και σε άλλες πλατφόρμες, μπορείτε να χρησιμοποιήσετε το nm (ή το Google) για να βρείτε πού ορίζονται αυτά τα σύμβολα και φαίνεται να βρίσκεται στο /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation για μένα (αλλά έχω πολύ παλιό mac οπότε μπορεί να μην ισχύει για εσάς).

Δεν θα συνδέεστε απευθείας με αυτήν τη βιβλιοθήκη. Δοκιμάστε να προσθέσετε κωδικό: |_+_| στις σημαίες συνδέσμου σας.

Εκεί

Πρωτότυπη αφίσα
22 Ιουλίου 2016
  • 27 Ιουλίου 2016
Ναι έχεις δίκιο !! Ευχαριστώ πολύ που μπορώ να συντάξω τώρα! Αντιμετώπιζα αυτό το πρόβλημα για 3 εβδομάδες! Ευχαριστώ πολύ ! ΜΕ

ζίμπι

5 Φεβρουαρίου 2019
  • 5 Φεβρουαρίου 2019
cqexbesd είπε: Νομίζω ότι η έξοδος 100K για μια κατασκευή από οτιδήποτε άλλο εκτός από το πιο περίπλοκο σύστημα είναι πιθανώς ένα σημάδι ότι τα πράγματα κάπου έχουν πάει στραβά - αλλά αυτό είναι ένα πιο γενικό σχόλιο για την κατάσταση του κλάδου.

Επιστροφή στο συγκεκριμένο πρόβλημά σας. Δεν βλέπω τα σφάλματα σύνδεσης που δημοσιεύσατε στο 'πλήρης έξοδος', ωστόσο αυτό φαίνεται να είναι απλά σφάλματα σύνδεσης. Όπως και σε άλλες πλατφόρμες, μπορείτε να χρησιμοποιήσετε το nm (ή το Google) για να βρείτε πού ορίζονται αυτά τα σύμβολα και φαίνεται να βρίσκεται στο /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation για μένα (αλλά έχω πολύ παλιό mac οπότε μπορεί να μην ισχύει για εσάς).

Δεν θα συνδέεστε απευθείας με αυτήν τη βιβλιοθήκη. Δοκιμάστε να προσθέσετε κωδικό: |_+_| στις σημαίες συνδέσμου σας.
ΜΕ

ζίμπι

5 Φεβρουαρίου 2019
  • 5 Φεβρουαρίου 2019
γεια σας παιδιά... αντιμετώπισα ένα πολύ παρόμοιο πρόβλημα...αλλά χρησιμοποιώ το τερματικό για τη μεταγλώττιση...μπορεί κάποιος παρακαλώ να βοηθήσει πώς μπορώ να κάνω την ίδια λύση σε περίπτωση τερματικού;

Έχω έτοιμο ένα αρχείο ./configure και εκτελείται ομαλά, αλλά λαμβάνω ffi... σχετικά με το 'symbols not found...' και κάτι που έχει να κάνει με τον σύνδεσμο όταν εκτελώ το make

okieiam

17 Δεκεμβρίου 2016
  • 8 Φεβρουαρίου 2019
zibbi είπε: γεια σας παιδιά... αντιμετώπισα ένα πολύ παρόμοιο πρόβλημα...αλλά χρησιμοποιώ το τερματικό για μεταγλώττιση...μπορεί κάποιος παρακαλώ να βοηθήσει πώς μπορώ να κάνω την ίδια λύση σε περίπτωση τερματικού;

Έχω έτοιμο ένα αρχείο ./configure και εκτελείται ομαλά, αλλά λαμβάνω ffi... σχετικά με το 'symbols not found...' και κάτι που έχει να κάνει με τον σύνδεσμο όταν εκτελώ το make
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure