Condividi:
Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!
Moderatori: Anthony47, Triumph Of Steel, archimede
di Tati » 19/05/06 12:38
Ciao a tutti,
se in un programma c, nel file eseguibile faccio #include di un file che si trova in un'altra directory e non posso usare path assoluti nè relativi, come faccio a farglielo trovare?
Grazie.
-
Tati
- Newbie
-
- Post: 4
- Iscritto il: 19/05/06 12:18
di zello » 19/05/06 13:14
non posso usare path assoluti nè relativi
E perché? Nel caso potessi farlo, ricordati di usare lo slash e non il backslash (o di raddoppiare il backslash). Cioé
- Codice: Seleziona tutto
#include "zello\include\myheader.h" //funziona su win e unix
#include "zello//include//myheader2.h" //funziona solo su windows
In alternativa (ma è sconsigliato) includi nelle direttive di compilazione un path alternativo per gli headers standard. Credo che msvc preveda /I, mentre gcc -I, ma sto andando a memoria
- Codice: Seleziona tutto
#include <myheader.h>
e compili con
- Codice: Seleziona tutto
cl /I zello\include mysource.c
gcc -I zello\include mysource.c
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
-
zello
- Moderatore
-
- Post: 2351
- Iscritto il: 06/05/02 13:44
di disgrazia » 20/05/06 18:20
Zello, ho l'impressione che tu abbia inavvertitamente invertito slash e backslash, io metterei così:
- Codice: Seleziona tutto
#include "zello/include/myheader.h" //funziona su win e unix
#include "zello\\include\\myheader2.h" //funziona solo su windows
Per il resto confermo l'utilizzo di -I come flag per gcc, l'unica cosa è che mi sembra sia necessario evitare gli spazi tra il -I e il path, cioè così:
- Codice: Seleziona tutto
gcc -I/home/disgrazia/include mysource.c
Personalmente tendo a preferire l'utilizzo di -I all'inserimento manuale del path nella #include. Oltretutto, usando automake la cosa è molto facile da gestire.
-
disgrazia
- Download Admin
-
- Post: 708
- Iscritto il: 08/07/02 22:16
di zello » 22/05/06 11:57
(oops, figuremmer**). Hai ragione, naturalmente.
Personalmente tendo a preferire l'utilizzo di -I
Molti puristi tendono ad usare le parentesi angolari solo per gli header standard.
Io tendo a creare una struttura di progetto del tipo
- Codice: Seleziona tutto
<nome progetto>
|
- include
- src
A quel punto, includere con -I o specificare #include "../include/myheader.h" è abbastanza equivalente.
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
-
zello
- Moderatore
-
- Post: 2351
- Iscritto il: 06/05/02 13:44
di Tati » 22/05/06 18:57
Ho provato a fare come mi avete detto ma il risultato è lo stesso: non trova il file.
-
Tati
- Newbie
-
- Post: 4
- Iscritto il: 19/05/06 12:18
di zello » 23/05/06 12:04
Scusami, non potremmo andare sul pratico? Mi dici dov'è il file header (percorso assoluto, per piacere) e come lo stai includendo?
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
-
zello
- Moderatore
-
- Post: 2351
- Iscritto il: 06/05/02 13:44
di Tati » 23/05/06 12:43
il file che cerco di compilare è TestM2.c che sitrova in /home/paoli/Desktop/DBF/Modulo2/test/TestM2.c e il file da includere è LPC_Include.h che si trova in /home/paoli/Desktop/DBF/include/LPC_Include.h.
Il File TestM2 è stato scritto dal prof e contiene #include "LPC_Include.h" e non può essere modificato. Ciao e grazie per la pazienza.
-
Tati
- Newbie
-
- Post: 4
- Iscritto il: 19/05/06 12:18
di archimede » 23/05/06 13:49
Tati ha scritto:Il File TestM2 è stato scritto dal prof e contiene #include "LPC_Include.h" e non può essere modificato.
In tal caso credo che dovrai mettere i due files nella stessa cartella (ma di C non so nulla, per cui aspetta un parere più illuminato).
Alessandro
-
archimede
- Moderatore
-
- Post: 2851
- Iscritto il: 07/11/02 12:41
- Località: Genova
-
di zello » 24/05/06 10:00
In tal caso credo che dovrai mettere i due files nella stessa cartella (ma di C non so nulla, per cui aspetta un parere più illuminato)
oppure un bel link simbolico.
- Codice: Seleziona tutto
$ ln -s /home/paoli/Desktop/DBF/include/LPC_Include.h
/home/paoli/Desktop/DBF/Modulo2/test/LPC_Include.h
(su unica riga di comando, ovviamente)
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
-
zello
- Moderatore
-
- Post: 2351
- Iscritto il: 06/05/02 13:44
Torna a Programmazione
Topic correlati a "includere file di altre cartelle in c":
Chi c’è in linea
Visitano il forum: Nessuno e 15 ospiti