Καταφέρνω να βρω κάδο. Τα προγράμματα οδήγησης δεν είναι εγκατεστημένα στην κάρτα γραφικών. Σφάλμα "Ανεπαρκείς πόροι συστήματος".


Κάποιες φορές τα σφάλματα bin64.bin και άλλα σφάλματα συστήματος τύπου BIN μπορεί να σχετίζονται με προβλήματα στο μητρώο των Windows. Διάφορα προγράμματα μπορούν να χρησιμοποιήσουν το αρχείο bin64.bin, αλλά όταν αυτά τα προγράμματα απεγκαθίστανται ή τροποποιούνται, μερικές φορές μένουν πίσω "ορφανές" (λανθασμένες) καταχωρίσεις BIN στο μητρώο.

Βασικά, αυτό σημαίνει ότι ενώ η πραγματική διαδρομή του αρχείου μπορεί να έχει αλλάξει, η λανθασμένη προηγούμενη θέση του εξακολουθεί να καταγράφεται στο μητρώο των Windows. Όταν τα Windows προσπαθούν να αναζητήσουν αυτές τις εσφαλμένες αναφορές αρχείων (τοποθεσίες αρχείων στον υπολογιστή σας), ενδέχεται να εμφανιστεί σφάλμα bin64.bin. Επιπλέον, μια μόλυνση από κακόβουλο λογισμικό μπορεί να έχει καταστρέψει καταχωρίσεις μητρώου που σχετίζονται με την εφαρμογή τρίτου μέρους. Επομένως, αυτές οι κατεστραμμένες καταχωρίσεις μητρώου BIN πρέπει να επιδιορθωθούν για να διορθωθεί το πρόβλημα στη ρίζα.

Η μη αυτόματη επεξεργασία του μητρώου των Windows για τη διαγραφή μη έγκυρων κλειδιών bin64.bin δεν συνιστάται, παρά μόνο εάν είστε επαγγελματίας τεχνικός υπολογιστών. Τα λάθη που γίνονται κατά την επεξεργασία του μητρώου μπορεί να καταστήσουν τον υπολογιστή σας μη λειτουργικό και να προκαλέσουν ανεπανόρθωτη ζημιά στο λειτουργικό σας σύστημα. Στην πραγματικότητα, ακόμη και ένα κόμμα που τοποθετείται σε λάθος μέρος μπορεί να αποτρέψει την εκκίνηση του υπολογιστή σας!

Εξαιτίας αυτού του κινδύνου, συνιστούμε να χρησιμοποιήσετε οπωσδήποτε ένα αξιόπιστο εργαλείο καθαρισμού μητρώου όπως το WinThruster (δημιουργήθηκε από πιστοποιημένο συνεργάτη Microsoft Gold Certified Partner) για τη σάρωση και την επιδιόρθωση τυχόν προβλημάτων μητρώου που σχετίζονται με το bin64.bin. Χρησιμοποιώντας εργαλείο καθαρισμού του μητρώου, μπορείτε να αυτοματοποιήσετε τη διαδικασία εύρεσης κατεστραμμένων καταχωρίσεων μητρώου, χαμένων αναφορών αρχείων (όπως αυτή που προκαλεί το σφάλμα bin64.bin), καθώς και κατεστραμμένων συνδέσμων μέσα στο μητρώο. Πριν από κάθε σάρωση, δημιουργείται αυτόματα ένα αντίγραφο ασφαλείας, το οποίο σας επιτρέπει να αναιρέσετε τυχόν αλλαγές με ένα κλικ και προστατεύοντάς σας από πιθανή ζημιά στον υπολογιστή σας. Το καλύτερο μέρος είναι ότι η εξάλειψη των σφαλμάτων μητρώου μπορεί να βελτιώσει δραματικά την ταχύτητα και την απόδοση του συστήματος.


Προειδοποίηση:Εάν δεν είστε έμπειρος χρήστης υπολογιστή, ΔΕΝ συνιστούμε τη μη αυτόματη επεξεργασία του μητρώου των Windows. Η εσφαλμένη χρήση του Επεξεργαστή Μητρώου μπορεί να προκαλέσει σοβαρά προβλήματα που ενδέχεται να απαιτήσουν την επανεγκατάσταση των Windows. Δεν εγγυόμαστε ότι τα προβλήματα που προκύπτουν από εσφαλμένη χρήση του Επεξεργαστή Μητρώου μπορούν να διορθωθούν. Χρησιμοποιείτε τον Επεξεργαστή Μητρώου με δική σας ευθύνη.

Προτού επιδιορθώσετε μη αυτόματα το μητρώο των Windows, πρέπει να δημιουργήσετε ένα αντίγραφο ασφαλείας εξάγοντας ένα τμήμα του μητρώου που σχετίζεται με το bin64.bin (για παράδειγμα, Εφαρμογή τρίτου μέρους):

  1. Κάντε κλικ στο κουμπί Αρχίζουν.
  2. Εισαγω " εντολή" V γραμμή αναζήτησης... ΜΗΝ ΚΑΝΕΤΕ ΚΛΙΚ ΑΚΟΜΑ ΕΙΣΑΓΩ!
  3. Κρατώντας πατημένα τα πλήκτρα CTRL-Shiftστο πληκτρολόγιό σας, πατήστε ΕΙΣΑΓΩ.
  4. Θα εμφανιστεί ένα παράθυρο διαλόγου για πρόσβαση.
  5. Κάντε κλικ Ναί.
  6. Το μαύρο κουτί ανοίγει με έναν δρομέα που αναβοσβήνει.
  7. Εισαγω " regedit" και πατήστε ΕΙΣΑΓΩ.
  8. Στον Επεξεργαστή Μητρώου, επιλέξτε το κλειδί που σχετίζεται με το bin64.bin (για παράδειγμα, Εφαρμογή τρίτου μέρους) που θέλετε να δημιουργήσετε αντίγραφο ασφαλείας.
  9. Στο μενού Αρχείοεπιλέγω Εξαγωγή.
  10. Στη λίστα Αποθήκευση σεΕπιλέξτε το φάκελο στον οποίο θέλετε να αποθηκεύσετε το αντίγραφο ασφαλείας του κλειδιού εφαρμογής τρίτου μέρους.
  11. Στο χωράφι Ονομα αρχείουΕισαγάγετε ένα όνομα για το αρχείο αντιγράφου ασφαλείας, για παράδειγμα "Αντίγραφο ασφαλείας εφαρμογής τρίτων".
  12. Βεβαιωθείτε ότι το πεδίο Εύρος εξαγωγήςεπιλεγμένη τιμή Επιλεγμένο υποκατάστημα.
  13. Κάντε κλικ Αποθηκεύσετε.
  14. Το αρχείο θα αποθηκευτεί με επέκταση .reg.
  15. Έχετε πλέον αντίγραφο ασφαλείας της καταχώρισης μητρώου που σχετίζεται με το bin64.bin.

Τα ακόλουθα βήματα για τη μη αυτόματη επεξεργασία του μητρώου δεν θα περιγραφούν σε αυτό το άρθρο, καθώς είναι πιθανό να βλάψουν το σύστημά σας. Εάν θέλετε περισσότερες πληροφορίες σχετικά με τη μη αυτόματη επεξεργασία του μητρώου, ανατρέξτε στους παρακάτω συνδέσμους.

Από καιρό σε καιρό, οι υπολογιστές μας παράγουν διάφορα σφάλματα: οποιαδήποτε προγράμματα ή αρχεία σταματούν να ανοίγουν, η λειτουργία επανεκκίνησης ξεκινά από μόνη της και προκύπτουν άλλα προβλήματα. Σε αυτό το άρθρο, θα μιλήσω για το γιατί το μήνυμα "Δεν είναι δυνατή η εύρεση (αρχείο)" εμφανίζεται μερικές φορές στην οθόνη του υπολογιστή σας. Ελέγξτε εάν το όνομα είναι σωστό και δοκιμάστε ξανά» και τι πρέπει να κάνετε για να λύσετε αυτό το πρόβλημα.

Αναζητούμε λύση στο πρόβλημα

Ας καταλάβουμε γιατί στην οθόνη του υπολογιστή μας εμφανίζεται ένα μήνυμα ότι το αρχείο δεν μπορεί να βρεθεί και πρέπει να ελέγξουμε το όνομα. Το σύστημα σε παρένθεση υποδεικνύει τη διαδρομή προς ένα αρχείο που δεν μπορεί να εντοπιστεί και μας συμβουλεύει να ελέγξουμε ότι το όνομα είναι σωστό και να προσπαθήσουμε ξανά.

Οι χρήστες συμφωνούν ότι αυτό το πρόβλημα προκαλείται από το πρόγραμμα προστασίας από ιούς. Πιο συγκεκριμένα, ο ίδιος ο ιός, ίχνη του οποίου έχουν εντοπιστεί και το αρχείο που έχει μολυνθεί από αυτόν έχει διαγραφεί ή μεταφερθεί σε καραντίνα. Το σφάλμα εμφανίζεται επίσης όταν τα προγράμματα εγκαθίστανται ή απεγκαθίστανται λανθασμένα. Φυσικά, μπορείτε πάντα να επανεγκαταστήσετε τα Windows, αλλά αυτή είναι η τελευταία λύση· κανείς δεν θέλει να καταργήσει προγράμματα εργασίας. Επομένως, πρώτα θα εφαρμόσουμε λιγότερο κατηγορηματικά μέτρα - θα εξετάσουμε διαφορετικούς τύπους αρχείων και θα καθορίσουμε τρόπους διόρθωσης του σφάλματος.

Επίλυση του προβλήματος όταν είναι αδύνατο να ανοίξετε αρχεία exe

Υπάρχουν διάφοροι τρόποι επίλυσης του προβλήματος ανοίγματος αρχείων exe. Ας τα δούμε με τη σειρά.

Επανεγκατάσταση λογισμικού

Εάν ένα αρχείο διαγραφεί από ένα πρόγραμμα προστασίας από ιούς, τότε δεν χρειάζεται να το αφαιρέσετε από τον αποθηκευτικό χώρο, δεν ήταν μάταιο που μετακινήθηκε εκεί. Ακόμα κι αν μπορέσουμε να το βγάλουμε από εκεί, είναι ήδη κατεστραμμένο και δεν θα μπορεί να λειτουργήσει όπως θα έπρεπε.

Σε αυτήν την περίπτωση, η λύση είναι η πλήρης απεγκατάσταση και εγκατάσταση ενός προγράμματος που δεν μπορεί να ξεκινήσει. Είναι καλύτερο να αφαιρέσετε λογισμικό όχι μέσω τυπικών εργαλείων των Windows, αλλά χρησιμοποιώντας ειδικό λογισμικό - Revo Uninstaller ή AIDA64. Όχι μόνο θα απεγκαταστήσουν το προβληματικό πρόγραμμα, αλλά θα «καθαρίσουν» και όλα τα περιττά υπολειμματικά αρχεία.

Αλλαγή ρυθμίσεων Steam

Συμβαίνει ότι κατά την έναρξη του παιχνιδιού εμφανίζεται ένα μήνυμα σχετικά με την αδυναμία ανοίγματος ενός συγκεκριμένου αρχείου exe "Δεν μπορώ να βρω... Ελέγξτε εάν το όνομα είναι σωστό και δοκιμάστε ξανά". Σε αυτήν την περίπτωση, εφαρμόζουμε τον ακόλουθο αλγόριθμο ενεργειών:

  • Κάντε δεξί κλικ στο φάκελο Steam και επιλέξτε "Ιδιότητες".
  • μεταβείτε στην καρτέλα "Ασφάλεια".
  • στο πρώτο παράθυρο "Ομάδες ή χρήστες" επιλέξτε τη γραμμή "Χρήστες".
  • εάν για κάποιο λόγο λείπει αυτή η γραμμή, κάντε κλικ στο "Αλλαγή" ακριβώς από κάτω και στο επόμενο παράθυρο "Προσθήκη".
Επιλέξτε έναν χρήστη στο φάκελο Steam
  • στο παράθυρο "Εισαγωγή ονομάτων επιλεγμένων αντικειμένων", εισαγάγετε το όνομα χρήστη και κάντε κλικ στο "Έλεγχος ονομάτων" (το όνομα μπορεί να ληφθεί από τη γραμμή "Διαχειριστές" ή να χρησιμοποιήσετε το όνομα επισκέπτη που είναι καταχωρημένο σε αυτόν τον υπολογιστή).

Εισαγάγετε τα ονόματα των επιλεγμένων αντικειμένων
  • Αφού ελέγξετε με επιτυχία το όνομα, κάντε κλικ στο OK.
  • βεβαιωθείτε ότι όλα τα στοιχεία "Να επιτρέπεται" έχουν επιλεγεί για τον επιλεγμένο χρήστη και κάντε κλικ στο OK.
Ρύθμιση δικαιωμάτων για την ομάδα "Χρήστες".
  • Περιμένουμε μέχρι να εισαχθούν όλες οι αλλαγές και επανεκκινήσουμε το παιχνίδι.

Επεξεργαστής Μητρώου και Διαχείριση εργασιών για βοήθεια

  1. Μπορείτε να δοκιμάσετε και αυτή τη μέθοδο. Κάντε δεξί κλικ στην Έναρξη (στα Windows 10) και αναζητήστε τη γραμμή "Εκτέλεση".
  2. Εισαγάγετε το regedit. Ανοίγει ο Επεξεργαστής Μητρώου.
  3. Περνάμε την ακόλουθη διαδρομή - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run - αναζητήστε τη γραμμή προβλημάτων εδώ και διαγράψτε την.

Διαγράψτε το αρχείο στο φάκελο Εκτέλεση

Μπορεί επίσης να βοηθήσει να απενεργοποιήσετε την εκκίνηση της εφαρμογής που λαμβάνει το σφάλμα "Δεν είναι δυνατή η εύρεση (αρχείο)". Ανοίξτε τη Διαχείριση Εργασιών (στο κουμπί Έναρξη), επιλέξτε LMB το επιθυμητό πρόγραμμα, κάντε δεξί κλικ πάνω του και επιλέξτε «Απενεργοποίηση».

Επίλυση του προβλήματος με το άνοιγμα του Excel

Εάν δεν μπορείτε να ανοίξετε ένα βιβλίο εργασίας του Excel και λάβετε ένα μήνυμα που δεν μπορεί να βρει (αρχείο) - πρέπει να ελέγξετε αν το όνομα είναι σωστό και να προσπαθήσετε ξανά, τότε πρέπει να κάνετε τα εξής. Δεδομένου ότι η αιτία του σφάλματος σε αυτήν την περίπτωση μπορεί να είναι η απαγόρευση αποδοχής αιτημάτων DDE από άλλες εφαρμογές, πρέπει να αφαιρεθεί. Για να το κάνετε αυτό, καταργήστε την επιλογή του πλαισίου "Παράβλεψη αιτημάτων DDE από άλλες εφαρμογές". Στο Excel 2007, αυτή η συμβολοσειρά βρίσκεται στις σύνθετες επιλογές στο κουμπί του Microsoft Office. Στο Excel 2003 και σε παλαιότερες εκδόσεις, στις Γενικές Επιλογές στο μενού Εργαλεία.

Σφάλμα στον Επεξεργαστή Πολιτικής Τοπικής Ομάδας

Κατά τη διαδικασία της δραστηριότητας, ενδέχεται να συναντήσουμε το γεγονός ότι κατά την εκκίνηση του Επεξεργαστή πολιτικών τοπικής ομάδας, εμφανίζεται ένα παράθυρο με ένα μήνυμα ότι το αρχείο gpedit.msc δεν μπορεί να βρεθεί. Δεν βιαζόμαστε να αναζητήσουμε αυτό το αρχείο στον υπολογιστή μας, αλλά θυμόμαστε ή εξετάζουμε ποια έκδοση των Windows είναι εγκατεστημένη στον υπολογιστή. Εάν είναι βασικό ή οικιακό, απλά δεν έχουν επεξεργαστή LGP.

Σε αυτήν την περίπτωση, χρησιμοποιούμε δύο μεθόδους:

  • αναζητούμε έναν άλλο τρόπο όπου δεν χρειαζόμαστε λειτουργίες επεξεργασίας (καθιστούν ευκολότερη τη διαχείριση των ρυθμίσεων του συστήματος κάνοντας αλλαγές στο μητρώο).
  • επανεγκαθιστούμε το λειτουργικό σύστημα σε εταιρικές, επαγγελματικές και άλλες εκδόσεις που έχουν στενή εξειδίκευση.

Εξετάσαμε τους κύριους τρόπους επίλυσης του προβλήματος που παρουσιάζεται όταν τα Windows δεν μπορούν να βρουν το αρχείο που χρειάζεστε. Ελπίζω αυτές οι πληροφορίες να βοηθήσουν όποιον αντιμετωπίζει παρόμοιο σφάλμα.

Σε επαφή με

Προσπαθώ να εκτελέσω ένα έργο Asp.net MVC που προέρχεται από μια πηγή ελέγχου TFS. Έχω προσθέσει όλες τις αναφορές κατασκευής και μπορώ να δημιουργήσω και να μεταγλωττίσω τα αρχεία χωρίς σφάλματα ή προειδοποιήσεις.

Αλλά στο πρόγραμμα περιήγησης λαμβάνω το ακόλουθο σφάλμα:

Δεν ήταν δυνατή η εύρεση μέρους της διαδρομής "C:\B8akWorkspace\B8akProject\B8akSolution\B8AK.Portal\Bin\Roslyn\csc.exe".

Εδώ είναι ένα πλήρες στιγμιότυπο οθόνης της σελίδας σφάλματος.

Μετά από μερικές μέρες έρευνας, συνειδητοποίησα ότι το Roslin είναι μια πλατφόρμα μεταγλωττιστή .NET που προσφέρει δυνατότητες προμεταγλώττισης. Ωστόσο, δεν καταλαβαίνω γιατί το build μου προσπαθεί να βρει το \bin\roslyn\csc.exe επειδή δεν έχω ρυθμίσει τίποτα σχετικό με το Roslyn και δεν σκοπεύω να χρησιμοποιήσω το Roslyn στο έργο μου.


2017-09-25 10:36

Απαντήσεις:

Το πρόβλημα με τα προεπιλεγμένα πρότυπα VS2015 είναι ότι ο μεταγλωττιστής δεν αντιγράφεται στον κατάλογο tfr\bin\roslyn\, αλλά στον κατάλογο (outdir)\roslyn\

Προσθέστε αυτόν τον κώδικα στο αρχείο σας .csproj:


2017-09-25 10:44

Στην περίπτωσή μου, η λύση ήταν η επανεγκατάσταση/ενημέρωση των πακέτων Nuget:

  • Microsoft.Net.Compilers 1.1.1
  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.1

Έπειτα κοίταξα το .csproj και βεβαιώθηκα ότι οι διαδρομές των πακέτων ήταν σωστές (στην περίπτωσή μου..\..\packages\*.*) Μέσα στις ετικέτες πάνω και μέσα με το όνομα "EnsureNuGetPackageBuildImports" στο κάτω μέρος. Αυτό είναι σε MVC 5 και .NET Framework 4.5.2.

Σύντομη απάντηση - εκτελέστε αυτό στην κονσόλα διαχείρισης πακέτων:

ΜΜ > πακέτο ενημέρωσης Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r


2017-12-21 08:23

Η κατασκευή σας προσπαθεί να βρει το \bin\roslyn\csc.exe επειδή τα ακόλουθα πακέτα προστίθενται στο έργο σας. Απλώς ελέγξτε το αρχείο packages.config, μπορεί να έχετε και τα δύο εκεί

Microsoft.CodeDom.Providers.DotNetCompilerPlatform Microsoft.Net.Compilers

Τι είναι η Roslyn και ποιος πρόσθεσε αυτά τα (πακέτα) στο έργο:Εάν χρησιμοποιείτε το .net Framework 4.5.2 για να δημιουργήσετε έργα χρησιμοποιώντας το VS2015, ίσως έχετε παρατηρήσει ότι τα πρότυπα έργων χρησιμοποιούν το Roslin από προεπιλογή. Στην πραγματικότητα, η Roslyn είναι ένας από τους μεταγλωττιστές ανοιχτού κώδικα για γλώσσες .NET από τη Microsoft.

Γιατί πρέπει να αφαιρέσουμε τη Roslyn:Εάν το έργο σας περιέχει αναφορές Roslyn και σας ενδιαφέρει να αναπτύξετε αυτόν τον μη διακομιστή, θα λάβετε ανεπιθύμητα σφάλματα στον ιστότοπό σας, καθώς πολλοί πάροχοι φιλοξενίας εξακολουθούν να μην έχουν ενημερώσει τους διακομιστές τους και ως εκ τούτου δεν υποστηρίζουν τη Roslyn. Για να επιλύσετε αυτό το ζήτημα, θα χρειαστεί να αφαιρέσετε το Roslyn από το πρότυπο έργου.

εάν δεν ενδιαφέρεστε να χρησιμοποιήσετε το Roslyn, ακολουθήστε αυτά τα βήματα για να το αφαιρέσετε

1. Καταργήστε τα πακέτα Nuget, χρησιμοποιήστε τις ακόλουθες εντολές από την Κονσόλα πακέτων Nuget

PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform PM> Uninstall-package Microsoft.Net.Compilers

2. Αφού το κάνετε αυτό, το αρχείο web.config θα πρέπει να ενημερώνεται αυτόματα. Εάν δεν είναι, αναζητήστε τον παρακάτω κώδικα στο αρχείο web.config και εάν βρεθεί, αφαιρέστε αυτό το κομμάτι κώδικα.


2017-07-29 22:20

Εδώ είναι ένας ευκολότερος τρόπος MSBuild.

Παρατηρώ όμως ότι τα αρχεία roslyn βρίσκονται επίσης στον κατάλογο bin μου (όχι φάκελο). Ωστόσο, η εφαρμογή λειτουργεί.


2017-10-07 23:49

Καθαρή και ανακατασκευασμένη δουλειά για μένα!

Επεξεργασία:

με επιλογές (11)

Προσπαθώ να μεταγλωττίσω το πρόγραμμά μου και επιστρέφει αυτό το σφάλμα:

Usr/bin/ld: δεν μπορώ να βρω -l

στο makefile μου χρησιμοποιώ την εντολή g++ και έναν σύνδεσμο προς τη βιβλιοθήκη μου που είναι ένας συμβολικός σύνδεσμος προς τη βιβλιοθήκη μου που βρίσκεται σε διαφορετικό κατάλογο.

Υπάρχει κάποια επιλογή για προσθήκη για να λειτουργήσει παρακαλώ;

Απαντήσεις

Ελέγξτε τη θέση της βιβλιοθήκης σας, για παράδειγμα lxxx.so:

Εντοπίστε το lxxx.so

Εάν δεν βρίσκεται στο φάκελο /usr/lib, πληκτρολογήστε τα εξής:

Sudo cp yourpath/lxxx.so /usr/lib

Αυτό το σφάλμα μπορεί επίσης να εμφανιστεί εάν ο συμβολικός σύνδεσμος είναι σε μια δυναμική βιβλιοθήκη.so, αλλά για παλιούς λόγους - -static εμφανίζεται μεταξύ των σημαιών συνδέσμου. Εάν ναι, δοκιμάστε να το αφαιρέσετε.

Το πρόβλημά μου ήταν ότι μετονόμασα τον γονικό κατάλογο του προγράμματος που εκτελούσα (mpicc από το MVAPICH) και κατά κάποιο τρόπο κατέστρεψε το δυαδικό αρχείο. Ακόμη και το ντόπινγκ LD_LIBRARY_PATH δεν ήταν αρκετό και έπρεπε να το μεταγλωττίσω ξανά στη σωστή διαδρομή.

Η βιβλιοθήκη με την οποία προσπαθούσα να συνδέσω αποδείχθηκε ότι είχε ένα μη τυπικό όνομα (δηλαδή δεν είχε το πρόθεμα "lib"), επομένως συνέστησαν τη χρήση μιας εντολής όπως αυτή για τη μεταγλώττιση -

gcc test.c -Iinclude lib/cspice.a -lm

Δεν φαίνεται να υπάρχει μια απάντηση που να αντιμετωπίζει το πολύ συνηθισμένο πρόβλημα των αρχάριων της αδυναμίας εγκατάστασης της σωστής βιβλιοθήκης εξαρχής.

Στις πλατφόρμες Debianish, εάν λείπει το libfoo, μπορείτε συχνά να το εγκαταστήσετε με κάτι τέτοιο

Apt-get εγκατάσταση libfoo-dev

Για -dev, η έκδοση -dev ενός πακέτου, ακόμη και ασήμαντη ανάπτυξη, όπως η μεταγλώττιση πηγαίου κώδικα για σύνδεση με μια βιβλιοθήκη.

Το όνομα του πακέτου απαιτεί μερικές φορές κάποια διακόσμηση (libfoo0-dev ? foo-dev χωρίς το πρόθεμα lib, κ.λπ.), ή μπορείτε απλώς να χρησιμοποιήσετε τη μαζική αναζήτηση της διανομής σας για να προσδιορίσετε ακριβώς ποια πακέτα παρέχουν ένα συγκεκριμένο αρχείο.

(Εάν υπάρχουν περισσότερα από ένα, θα πρέπει να καταλάβετε ποιες είναι οι διαφορές τους. Η επιλογή του πιο cool ή πιο δημοφιλούς είναι μια γενική συντόμευση, αλλά όχι μια αποδεκτή διαδικασία για οποιαδήποτε σοβαρή εργασία ανάπτυξης.)

Άλλες αρχιτεκτονικές (ιδιαίτερα RPM) ακολουθούν παρόμοιες διαδικασίες, αν και οι λεπτομέρειες θα διαφέρουν.

Για να μάθετε τι αναζητά ο σύνδεσμος, εκτελέστε τον σε αναλυτική λειτουργία.

Για παράδειγμα, αντιμετώπισα αυτό το πρόβλημα όταν προσπαθούσα να μεταγλωττίσω τη MySQL με υποστήριξη ZLIB. Κατά τη μεταγλώττιση έλαβα αυτό το σφάλμα:

/usr/bin/ld: δεν είναι δυνατή η εύρεση του -lzlib

Έκανα λίγο Google και συνέχισα να αντιμετωπίζω διάφορα προβλήματα του ίδιου τύπου, όπου οι άνθρωποι έλεγαν για να βεβαιωθούν ότι το αρχείο .so υπάρχει στην πραγματικότητα, και αν όχι, τότε δημιουργήστε έναν σύνδεσμο συμβόλων στο αρχείο έκδοσης, όπως zlib.so.1.2 .8 Αλλά, όταν έλεγξα, το zlib.so DID υπάρχει.Έτσι σκέφτηκα ότι δεν θα μπορούσε να είναι πρόβλημα.

Βρήκα μια άλλη ανάρτηση στο διαδίκτυο που πρότεινε να τρέξει το make with LD_DEBUG=all:

LD_DEBUG=all make

Παρόλο που πήρα έναν ΤΟΝΟ εξόδου εντοπισμού σφαλμάτων, δεν ήταν πραγματικά πολύ χρήσιμο. Αυτό πρόσθεσε περισσότερη σύγχυση από οτιδήποτε άλλο. Έτσι ήμουν έτοιμος να τα παρατήσω.

Μετά είχα θεοφάνεια. Αποφάσισα να ελέγξω το κείμενο βοήθειας για την εντολή ld:

Ld --βοήθεια

Από αυτό κατάλαβα πώς να τρέξω το ld σε αναλυτική λειτουργία (φανταστείτε):

Ld -lzlib --περιεκτική

Αυτό είναι το αποτέλεσμα που πήρα:

================================================== === προσπάθεια ανοίγματος /usr/x86_64-linux-gnu/lib64/libzlib.so αποτυχημένη προσπάθεια ανοίγματος /usr/local/lib64/libzlib.α αποτυχημένη προσπάθεια ανοίγματος /lib64/libzlib.so αποτυχημένη προσπάθεια ανοίγματος /lib64 /libzlib.a αποτυχημένη προσπάθεια ανοίγματος /usr/lib64/libzlib.so αποτυχημένη προσπάθεια ανοίγματος / usr/lib64/libzlib.α αποτυχημένη προσπάθεια ανοίγματος /usr/x86_64-linux-gnu/lib/libzlib.so αποτυχημένη προσπάθεια ανοίγματος /usr/x86_64-linux-gnu/lib/libzlib.α αποτυχημένη προσπάθεια ανοίγματος /usr/ local/lib/libzlib.so αποτυχημένη προσπάθεια ανοίγματος /usr/local/lib/libzlib.α αποτυχημένη προσπάθεια ανοίγματος /lib/libzlib .so απέτυχε προσπάθεια ανοίγματος /lib/libzlib.μια αποτυχημένη προσπάθεια ανοίγματος /usr/lib/ libzlib.so αποτυχημένη προσπάθεια ανοίγματος /usr/lib/libzlib.a απέτυχε /usr/bin/ld.bfd.real: δεν μπορώ να βρω -lzlib

Ντινγκ, Ντινγκ, Ντινγκ...

Έτσι, για να διορθώσω τελικά αυτό, θα μπορούσα να μεταγλωττίσω τη MySQL με τη δική μου έκδοση του ZLIB (αντί για ομαδοποιημένη):

Sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so

Χρόνος μεταγλώττισης

Όταν το G++ λέει δεν μπορώ να βρω -l , αυτό σημαίνει ότι το G++ έψαχνε για το αρχείο lib(nameOfTheLibrary).so , αλλά δεν μπορούσε να το βρει στη διαδρομή αναζήτησης της κοινόχρηστης βιβλιοθήκης, η οποία από προεπιλογή δείχνει σε /usr/lib και /usr/local/lib και κάπου άλλα .

Για να επιλύσετε αυτό το ζήτημα, πρέπει είτε να παρέχετε το αρχείο βιβλιοθήκης (lib(nameOfTheLibrary).so) σε αυτές τις διαδρομές αναζήτησης είτε να χρησιμοποιήσετε την εντολή -L. -L(διαδρομή) λέει στο G++ (στην πραγματικότητα ld) να αναζητήσει αρχεία βιβλιοθήκης στη διαδρομή εκτός από τις προεπιλεγμένες διαδρομές.

Παράδειγμα.Υποθέτοντας ότι έχετε μια βιβλιοθήκη στο /home/taylor/libswift.so και θέλετε να συνδέσετε την εφαρμογή σας με αυτήν τη βιβλιοθήκη. Σε αυτήν την περίπτωση, πρέπει να παρέχετε στο G++ τις ακόλουθες επιλογές:

G++ main.cpp -o main -L/home/taylor -lswift

    Σημείωση 1: -Λαμβάνω το όνομα της βιβλιοθήκης χωρίς lib και .έτσι στην αρχή και στο τέλος.

    Σημείωση 2: Σε ορισμένες περιπτώσεις, το όνομα του αρχείου της βιβλιοθήκης ακολουθείται από την έκδοσή του, για παράδειγμα libswift.so.1.2. Σε αυτές τις περιπτώσεις το G++ αποτυγχάνει επίσης να βρει το αρχείο της βιβλιοθήκης. Μια απλή λύση στο libswift.so.1.2 για να το διορθώσετε είναι η δημιουργία ενός συμβολικού συνδέσμου στο libswift.so.1.2 που ονομάζεται libswift.so.

χρόνος παράδοσης

Όταν συνδέετε την εφαρμογή σας σε μια κοινόχρηστη βιβλιοθήκη, απαιτείται η βιβλιοθήκη να παραμένει διαθέσιμη κάθε φορά που εκτελείτε την εφαρμογή. Κατά το χρόνο εκτέλεσης, η εφαρμογή σας (στην πραγματικότητα ένας δυναμικός σύνδεσμος) αναζητά τις βιβλιοθήκες της στο LD_LIBRARY_PATH . Αυτή είναι μια μεταβλητή περιβάλλοντος που αποθηκεύει μια λίστα διαδρομών.

Παράδειγμα.Στην περίπτωση του παραδείγματος libswift.so, ο δυναμικός σύνδεσμος δεν μπορεί να βρει το libswift.so στο LD_LIBRARY_PATH (που δείχνει τις προεπιλεγμένες διαδρομές αναζήτησης). Για να διορθώσετε το πρόβλημα, πρέπει να προσθέσετε αυτήν τη μεταβλητή χρησιμοποιώντας τη διαδρομή libswift.so.

Εξαγωγή LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/taylor

Εάν το όνομα της βιβλιοθήκης σας ονομάζεται libxyz.so και βρίσκεται στη διαδρομή, πείτε:

/home/user/myDir

στη συνέχεια συνδέστε το με το πρόγραμμά σας:

G++ -L/home/user/myDir -lxyz myprog.cpp -o myprog

Πρώτα, πρέπει να γνωρίζετε τη σύμβαση ονομασίας lxxx:

/usr/bin/ld: δεν μπορώ να βρω -lc /usr/bin/ld: δεν μπορώ να βρω -lltdl /usr/bin/ld: δεν μπορώ να βρω -lXtst

lc σημαίνει libc.so, lltdl σημαίνει libltdl.so, lXtst σημαίνει libXts.so.

Άρα είναι lib + lib-name + .so

Μόλις μάθουμε το όνομα, μπορούμε να χρησιμοποιήσουμε το locate για να βρούμε τη διαδρομή προς αυτό το αρχείο lxxx.so

$ εντοπίστε libiconv.so /home/user/anaconda3/lib/libiconv.so #<-- right here /home/user/anaconda3/lib/libiconv.so.2 /home/user/anaconda3/lib/libiconv.so.2.5.1 /home/user/anaconda3/lib/preloadable_libiconv.so /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so.2 /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so.2.5.1 /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/preloadable_libiconv.so

Εάν δεν μπορείτε να το βρείτε, πρέπει να το εγκαταστήσετε στο yum (χρησιμοποιώ το CentOS). Συνήθως έχετε αυτό το αρχείο, αλλά δεν συνδέεται με τη σωστή τοποθεσία.

Συνδέστε το με την επιθυμητή τοποθεσία, συνήθως /lib64 ή /usr/lib64

$ sudo ln -s /home/user/anaconda3/lib/libiconv.so /usr/lib64/

Κατά τη μεταγλώττιση με g++ μέσω make, ορίστε τη ΒΙΒΛΙΟΘΗΚΗ_ΠΑΘ, εάν μπορεί να μην είναι πρακτικό να τροποποιήσετε το Makefile με την επιλογή -L. Έβαλα την πρόσθετη βιβλιοθήκη μου στο /opt/lib και έκανα:

$ εξαγωγή LIBRARY_PATH=/opt/lib/

και μετά εκτελέστε το make για να μεταγλωττίσετε και να συνδέσετε με επιτυχία.

Για να εκτελέσετε ένα πρόγραμμα με μια κοινόχρηστη βιβλιοθήκη, ορίστε:

$ εξαγωγή LD_LIBRARY_PATH=/opt/lib/

πριν την εκτέλεση του προγράμματος.

Το ubuntu σας έχει σίγουρα μια αρκετά πρόσφατη έκδοση του g++. Σημαία που χρησιμοποιείται: -std=c++0x .

Παρουσιάζεται σφάλμα εκκίνησης παιχνιδιού κατά την εκκίνηση του Warface στο αρχείο D:\GamesMailRu\Warface\Bin2Release\Game.exe. Το ίδιο το κείμενο σφάλματος μπορεί να είναι διαφορετικό: η πρόσβαση δεν επιτρέπεται, η συσκευή δεν αναγνωρίζει την εντολή, δεν υπάρχουν επαρκείς πόροι συστήματος για την ολοκλήρωση της λειτουργίας, ένα ή περισσότερα ορίσματα είναι λανθασμένα, το καθορισμένο αρχείο δεν μπορεί να βρεθεί. Σε κάθε συγκεκριμένη περίπτωση, η λύση μπορεί να διαφέρει. Πρώτα απ 'όλα, προτείνουμε:

  1. Εκτελέστε το Warface ως διαχειριστής. Κάντε δεξί κλικ στη συντόμευση του παιχνιδιού και επιλέξτε "Εκτέλεση ως διαχειριστής". Αυτή η λύση βοηθά σε περιπτώσεις με σφάλματα που σχετίζονται με την πρόσβαση σε εκτελέσιμα αρχεία.
  2. Επανεγκαταστήστε ή ενημερώστε το Microsoft Visual C++, το Microsoft .NET Framework και το VCredist. πώς να το κάνετε αυτό, διαβάστε παρακάτω ή ακολουθήστε τον σύνδεσμο: Πώς να ενημερώσετε το MS Visual C++, MS .NET, VCredist. Η λύση συχνά βοηθά με ένα σφάλμα: ένα ή περισσότερα ορίσματα είναι λανθασμένα.
  3. Είναι επίσης πιθανό τα αρχεία να καταστραφούν από προγράμματα προστασίας από ιούς. Δοκιμάστε να επανεγκαταστήσετε πλήρως το παιχνίδι.

Σφάλμα "Ανεπαρκείς πόροι συστήματος".

Ο λόγος για το σφάλμα έγκειται στην έλλειψη πόρων του συστήματος. Ίσως δεν υπάρχει αρκετή μνήμη στον σκληρό δίσκο, δεν υπάρχει αρκετή μνήμη RAM ή το αρχείο σελίδας είναι γεμάτο. Απελευθερώστε χώρο στον σκληρό σας δίσκο και αυξήστε το μέγεθος του αρχείου σελίδας των Windows.

Σφάλμα "Δεν είναι δυνατή η εύρεση του καθορισμένου αρχείου"

Σε αυτήν την περίπτωση, μπορούμε να πούμε με σιγουριά ότι τα αρχεία του παιχνιδιού είναι κατεστραμμένα. Πρέπει να επανεγκαταστήσετε πλήρως το παιχνίδι Warface.

Συνεχίζοντας το θέμα:
Windows

Οι καρτέλες χρησιμοποιούνται εδώ και πολύ καιρό για να παρέχουν στο χρήστη κάποιες εναλλακτικές πληροφορίες σε ένα επίπεδο της δομής του προγράμματος. Αυτές είναι "αρθρωτές καρτέλες" που μπορούν ακόμα να είναι...

Νέα άρθρα
/
Δημοφιλής