Via Cà Matta 2 - Peschiera Borromeo (MI)
+39 02 00704272
info@synaptica.info

Delphi [DCC Error] E2597 error: undefined reference to ‘std::__ndk1::__next_prime(unsigned int)’ on include static library

Digital Innovation Partner

Delphi [DCC Error] E2597 error: undefined reference to ‘std::__ndk1::__next_prime(unsigned int)’ on include static library

 

Soluzione all’Errore di Linking E2597 in Delphi

Durante lo sviluppo di applicazioni in Delphi, potrebbe capitare di incontrare errori di linking. Uno degli errori comuni è:

Premessa

L’errore E2597 può essere causato da vari fattori, tra cui:

  • Configurazioni errate nei pacchetti runtime.
  • Dipendenze mancanti o conflitti tra librerie.
  • Inclusione non corretta di librerie statiche, come la libc++.

La Problematiche con le Librerie Statiche

Quando si include una libreria statica come libc++ nel progetto Delphi, potrebbe verificarsi l’errore E2597 a causa di riferimenti non risolti. Questo avviene perché la libreria statica libc++ potrebbe non essere configurata correttamente per il linking statico completo.

La Soluzione

La soluzione consiste nel non includere la libreria libc++ staticamente e passare al linker il parametro -lstdc++, assicurandosi inoltre di includere la libreria libc++ nel deployment affinché venga linkata dinamicamente.

Passaggi per la Soluzione

1. Modifica delle Opzioni del Linker

Apri le opzioni del progetto e aggiungi il parametro -lstdc++ nelle opzioni del linker:

 

2. Aggiornamento del Deployment

Assicurati che la libreria libc++ sia inclusa nel deployment del progetto. Puoi fare questo andando nelle opzioni del progetto e aggiungendo la libreria libc++_shared.so:

 

 

3. Esempio di Configurazione del File .dproj

Puoi anche modificare direttamente il file .dproj per assicurarti che il parametro del linker sia incluso:

Conclusione

Seguendo questi passaggi, dovresti essere in grado di risolvere l’errore di linking E2597 in Delphi. Ricorda di verificare anche altre possibili cause dell’errore, come dipendenze mancanti o conflitti tra pacchetti. Una configurazione corretta delle opzioni del linker e del deployment garantirà che il tuo progetto funzioni senza problemi.

Nota: Se il problema persiste, potrebbe essere utile ricompilare le librerie statiche coinvolte o verificare ulteriormente le dipendenze del progetto per identificare eventuali altre cause dell’errore.