Pages: [1] 2   Go Down
Author Topic: Indicare percorso alternativo di una libreria  (Read 1546 times)
0 Members and 1 Guest are viewing this topic.
Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 44
Posts: 1383
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

So che è possibile indicare un percorso diverso per la libreria usate nell'include, ma non conosco bene la sintassi:

#include <libreria.h>     // libreria in directory "library"

#include "libreria.h"     // libreria in directory diversa (forse quella dello sketch?)
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 257
Posts: 21460
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ma vuoi avere la possibilitá che la libreria sia in uno o l' altro posto o chiedi i posti dove devono essere le librerie per le 2 possibilitá di sintassi del include?
Ciao Uwe
Logged

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 44
Posts: 1383
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao Uwe...

entrambe le cose: voglio imparare bene come funziona l'include.
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22635
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Forse questo può aiutarti a capire.
http://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html

Logged


Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 44
Posts: 1383
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie Leo, ma avevo già letto la cosa.

Insomma, ho fatto delle prove, ma sembra che la cosa più semplice sia quella di inserire la libreria nella directory "libraries".

O forse mi sbaglio?
Logged

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10461
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se usi
#include "asd"
il compilatore cerca nella cartella corrente (quindi quella dello sketch!) e poi in quelle <>

se usi <> cerca solo nelle cartelle predefinite (in ordine libraries, libraries nella cartella dell'IDE (Serial, Wire, etc...), librerie del compilatore)
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'e da aggiungere che l'ide  Arduino in fase di compilazione le librerie le ficca tutte a spanello insieme, pertanto un include in un progetto Arduino non conterrà mai il path, ma solo il nome della libreria.
La cosa importante da sapere è su quali percorsi e con che precedenza vengono cercate le librerie.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10461
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ah già, quindi tutto il discorso <> e "" viene a decadere perchè tanto arduino fa un bel minestone di tutto!
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22635
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

C'e da aggiungere che l'ide  Arduino in fase di compilazione le librerie le ficca tutte a spanello insieme,
Vero. Basta aprire un progetto e compilarlo, e poi andare a vedere nella cartella temporanea che gran calderone è stato creato  smiley-yell
Logged


0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10461
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho già fatto la pull request per sistemare il fatto e rendere l'IDE compatibile con il vero C, il bello è che non ho praticamente mai visto librerie "custom" che usano la cartella "utility", e quindi il passaggio sarebbe trasparente all'utente finale, salvo rarissimi casi.

Invece ci sono 4 librerie standard dell'ide che bisogna aggiornare, ma anche in questo caso sono modifiche interne e quindi completamente trasparenti all'utente. Se volete rompere un pò le balle: https://github.com/arduino/Arduino/pull/116
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao lesto, hai effettuato le modifiche in oggetto?
Io l'ho fatto già da tempo ed ho riscontrato che comunque continuando ad usarle dall'ide originale quest'utlimo continua a compilare regolarmente.
Pensandoci bene mi è venuto pensato che questo comportamento però è un pò strano.
Tu che dici?
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10461
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

cioè modificando gli include per usare le sottocartelle la compilazione va a buon fine? questa è black magic smiley
non so, se mi dici c he è così provo a darci un'occhiata.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Esattamente, come ti hod etto tempo fà, io uso eclipse al momento per arduino, e ho dovuto CORREGGERE i puntamenti degli include di alcune librerie, perchè sennò non compilava (ovviamente).
Il punto è che mi sono accorto che compilando nuovamente i vecchi progetti nell'ide originale (che utilizza le librerie con gli include modificati) queste vengono compilate correttamente.
Comunque ho notato che a seguito di compilazione su ide originale, nella cartella temporanea (.build) vengono incluse come al solito le librerie del core a spanello e vengono incluse anche le librerie esterne compilate (tipo ethernet eeprom e spi) con tutta la loro cartellina mantenendo la struttura originale.
Chizza che casso di ragionamenti fà l'ide in questo caso  smiley-mr-green
Mistero della fede!
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 123
Posts: 9300
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Vero. Basta aprire un progetto e compilarlo, e poi andare a vedere nella cartella temporanea che gran calderone è stato creato  smiley-yell

Nella cartella temporanea ci vanno a finire tutti gli stadi intermedi della compilazione, non c'è nulla di strano, tutti i compilatori usano una cartella d'appoggio per questa cosa oppure lo fanno nella cartella del progetto se non è stato specificata una cartella dedicata.
Logged

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I file intermedi è normale, ma in questo caso ci ficca pure i sorgenti del core.
Manon è questo il problema , quello che non si capisce è come fà a compilare indistintamente le librerie esterne sia esse abbiano gli include in formato originale (cosi come rilasciate da arduino) sia con gli include modificati(con percorsi relativi corretti).
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Pages: [1] 2   Go Up
Jump to: