Domanda

Sto cercando di costruire Python 2.6.2 dai sorgenti sul mio sistema Linux. Ha ncurses installati su / / curses.h local /, e usr è su / / / include / ncurses locali usr. Quindi curses.h non si trova sul percorso di inclusione, e quei pacchetti fallire nel costruire Python.

Qual è la giusta soluzione per questo? È Python dovrebbe includere ? Nel caso in / usr / local / include / ncurses essere nel percorso di inclusione? Ci dovrebbe essere un link dai file nella directory ncurses a / usr / local / include?

O c'è qualche soluzione più semplice?

È stato utile?

Soluzione

Con molti pacchetti Open Source, è possibile impostare:

export CPPFLAGS="-I/usr/local/include"

o anche:

export CPPFLAGS="-I/usr/local/include/ncurses"

prima di eseguire lo script di configurazione. Non ho compilato Python abbastanza recente per essere sicuri che funziona, ma probabilmente fa - ho ncurses installati sotto / usr / GNU (perché / usr / local / è Automounted e contiene oggetti d'antiquariato) e non mi ricordo dover utilizzare nulla di speciale per farlo funzionare.


ricontrollato ...

Lo script di configurazione include solo <curses.h>. Ho dovuto usare:

export CPPFLAGS="-I/usr/gnu/include -I/usr/gnu/include/ncurses"
export LDFLAGS="-L/usr/gnu/lib"
./configure

Per ottenere il Python (2.5) configurare per accettare maledizioni. Si potrebbe sostituire 'gnu' con 'local' per la configurazione.

Altri suggerimenti

So che questa è una domanda molto vecchio, ma il problema ancora venuto in mente quando si compila pitone 3.6.0 dai sorgenti quindi credo che sia ancora rilevante.

Le versioni recenti di ncurses sono disponibili in diversi gusti:, supporto normale carattere di larghezza, filettati. Al fine di consentire ai programmatori di mantenere e utilizzare diversi gusti, oltre a nominare le librerie in modo diverso (ncursesw.so, ncursest.so, ecc), le ncurses configurare script imposta il makefile per mettere i file di intestazione nelle sottodirectory per impostazione predefinita. Questo permette anche di avere diverse imprecazioni implementazioni accanto ncurses, come specificato nella pagina man .

Alcuni programmi, tuttavia, ancora per scontato che curses.h, lungo tutte le altre intestazioni ncurses, sono collocati nel livello superiore comprendono percorsi di ricerca, e non guardare in sottodirectory. In molte distribuzioni Linux di solito c'è una sorta di soluzione per il problema in pacchetti ncurses developement, ma se si sta compilando ncurses dalla sorgente, ci sono due possibili approcci per risolvere il problema:

  1. Uso CPPFLAGS o equivalente, come suggerisce la risposta accettata. Funziona, ma è necessario impostare i flag di compilazione appropriate ogni volta.
  2. Configurazione ncurses con --enable-overwrite. Questo installerà i ncurses intestazione file nella directory di livello superiore comprendono, secondo il vostro --prefix.

Se non si prevede di installare una libreria maledizioni alternativo, è completamente sicuro di mettere le intestazioni ncurses nel livello più alto include il percorso, ed è l'approccio seguito da Gentoo .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top