[Risolto]Build di un'app sviluppata in vala, usando meson e ninja. pkg-config lamenta dipendenze mancate

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3092
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 24.04 LTS Noble Numbat
Sesso: Maschile
Località: Roma, Italia

[Risolto]Build di un'app sviluppata in vala, usando meson e ninja. pkg-config lamenta dipendenze mancate

Messaggio da DoctorStrange »

Buongiorno a tutti,

Saltuariamente sviluppo un'applicazione grafica su linux, usando il linguaggio di programmazione vala, su framework GTK4.
La build di questa applicazione fa uso di meson, per la build e le dipendenze, ed infine ninja, per generare il vero e proprio eseguibile.

Al momento, la configurazione del mio ambiente è questa:

Codice: Seleziona tutto

The Meson build system
Version: 1.7.0
Source dir: /home/<path>/Repository-vala
Build dir: /home/<path>/Repository-vala/build
Build type: native build
Project name: vala-GTK
Project version: undefined
C compiler for the host machine: cc (gcc 14.2.0 "cc (Ubuntu 14.2.0-19ubuntu2) 14.2.0")
C linker for the host machine: cc ld.bfd 2.44
Vala compiler for the host machine: valac (valac 0.56.17)
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: YES (/usr/bin/pkg-config) 1.8.1
Run-time dependency glib-2.0 found: YES 2.80.2
Run-time dependency gobject-2.0 found: YES 2.80.2
Run-time dependency gtk4 found: YES 4.12.5
Build targets in project: 1

Found ninja-1.12.1 at /usr/bin/ninja
Purtroppo, una voltas avviata la build, il risultato di ninja, che sarebbe il tool che dovrebbe creare l'eseguibile, è questo:

Codice: Seleziona tutto

FAILED: vala-GTK 
cc  -o vala-GTK vala-GTK.p/meson-generated_src_application.c.o vala-GTK.p/meson-generated_src_GOrecord_stm32.c.o vala-GTK.p/meson-generated_src_executeBash.c.o vala-GTK.p/meson-generated_src_nomeGObject.c.o vala-GTK.p/meson-generated_src_createListView.c.o vala-GTK.p/meson-generated_src_connettoreSeriale.c.o -L/opt/gtk4e/lib -L/opt/glib-2.80/lib/ -I/opt/gtk4e/include -I/opt/gtk4e/include/gtk-4.0/ -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /opt/glib-2.80/lib/x86_64-linux-gnu/libglib-2.0.so /opt/glib-2.80/lib/x86_64-linux-gnu/libgobject-2.0.so /opt/gtk4e/lib/x86_64-linux-gnu/libgtk-4.so /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so /usr/lib/x86_64-linux-gnu/libpango-1.0.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so /usr/lib/x86_64-linux-gnu/libcairo-gobject.so /usr/lib/x86_64-linux-gnu/libcairo.so /opt/gtk4e/lib/x86_64-linux-gnu/libgraphene-1.0.so /opt/glib-2.80/lib/x86_64-linux-gnu/libgio-2.0.so -Wl,--end-group
/usr/bin/ld: /opt/gtk4e/lib/x86_64-linux-gnu/libgtk-4.so: riferimento non definito a `g_variant_builder_init_static'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
La stringa che chiarisce l'errore è quella alla fine: /usr/bin/ld: /opt/gtk4e/lib/x86_64-linux-gnu/libgtk-4.so: riferimento non definito a g_variant_builder_init_static

Ma non saprei come fare a risolvere. Uso un tool che si chiama pkg-config per istruire il sistema sulla posizione dei vari pacchetti, soprattutto quelli inerenti GTK4 che ho dovuto configurare a mano. Sospetto di dover aggiungere qualche puntamento che mi manca, ma non saprei come interpretare questo output di errore, e spero in un aiuto.

Aggiungo anche alcune variabili d'ambiente che ho aggiunto al bashrc del mio utente, magari può essere utile. Grazie

Codice: Seleziona tutto

export CPPFLAGS="-I/opt/gtk4e/include -I/opt/gtk4e/include/gtk-4.0/";
export GI_TYPELIB_PATH="/opt/gtk4e/lib/x86_64-linux-gnu/girepository-1.0:/usr/lib/x86_64-linux-gnu/girepository-1.0";
export LDFLAGS="-L/opt/gtk4e/lib -L/opt/glib-2.80/lib/";
export LD_LIBRARY_PATH="/opt/gtk4e/lib/x86_64-linux-gnu:/opt/gtk4e/lib:/opt/glib-2.80/lib:/opt/glib-2.80/lib/lib/x86_64-linux-gnu/";
export LIBRARY_PATH=$LIBRARY_PATH:"/opt/gtk4e/lib/x86_64-linux-gnu:/opt/glib-2.80/lib/x86_64-linux-gnu/";
export PATH=$PATH:"/opt/gtk4e/bin:/opt/glib-2.80/bin";
export PKG_CONFIG_LIBDIR="/opt/gtk4e/lib:/opt/glib-2.80/lib/";
export PKG_CONFIG_PATH="/opt/gtk4e/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/opt/glib-2.80/lib/x86_64-linux-gnu/pkgconfig/";
Ogni aiuto sarà apprezzato.

Grazie
Ultima modifica di DoctorStrange il domenica 7 dicembre 2025, 21:06, modificato 1 volta in totale.
Avatar utente
Actarus5
Prode Principiante
Messaggi: 229
Iscrizione: mercoledì 3 luglio 2013, 17:15
Desktop: Mate
Distribuzione: Debian 13
Località: Abutalabashuneba

Re: Build di un'app sviluppata in vala, usando meson e ninja. pkg-config lamenta dipendenze mancate

Messaggio da Actarus5 »

Seguendo il codice di errore che ti da in compilazione sono andato a vedere la documentazione. Forse è una sciocchezza, ma è possibile che la versione che stai usando della GLib sia "vecchia"? A quanto ho capito stai usando la 2.80.2 però dalla documentazione:

https://docs.gtk.org/glib/method.Varian ... tatic.html

Codice: Seleziona tutto

/**
 * g_variant_builder_init_static: (skip)
 * @builder: a #GVariantBuilder
 * @type: a container type
 *
 * Initialises a #GVariantBuilder structure.
 *
 * This function works exactly like g_variant_builder_init() but does
 * not make a copy of @type. Therefore, @type must remain valid for the
 * lifetime of @builder. This is always true of type constants like
 * `G_VARIANT_TYPE_*` or `G_VARIANT_TYPE ("(ii)")`.
 *
 * Since: 2.84
 **/
void
g_variant_builder_init_static (GVariantBuilder    *builder,
                               const GVariantType *type)
{
  _g_variant_builder_init (builder, type, FALSE);
}
Dovrebbe essere disponibile dalla 2.84.
"An extremely helpful console message: “SPANK! SPANK! SPANK! Naughty programmer!”. Really, I’m not joking about that one."
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3092
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 24.04 LTS Noble Numbat
Sesso: Maschile
Località: Roma, Italia

Re: Build di un'app sviluppata in vala, usando meson e ninja. pkg-config lamenta dipendenze mancate

Messaggio da DoctorStrange »

Ti ringrazio molto per l'interessamento. Sembra proprio che tu abbia ragione. In effetti anche la GLIB è una libreria che ho dovuto configurare a mano, perche la gtk-4 ne richiedeva una piu recente di quella di sistema.
Domani aggiornerò la libreria, e spero che questo risolva questo problema.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti