Build-System

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Sa Apr 07, 2012 12:04 pm

Ich habe einen Fehler im Buildsystem, der wohl durch ein Cmake Update zu stande kommt:

Code: Alles auswählen

Using makefile: Makefile
make[3]: *** Keine Regel vorhanden, um das Target »/usr/lib/libsqlite3.so«, 
  benötigt von »kernel/libdedupe-kernel.so.0«, zu erstellen.  Schluss.
make[2]: *** [kernel/CMakeFiles/dedupe-kernel.dir/all] Fehler 2
make[1]: *** [userinterface/gui/qt/CMakeFiles/dedupe-qt.dir/rule] Fehler 2
make: *** [dedupe-qt] Fehler 2
[ 25%] Built target dedupe-dataholding
[ 50%] Built target dedupe-filesearch
Process terminated with status 2 (0 minutes, 0 seconds)
0 errors, 0 warnings]
Hast du eine Idee, woran das liegen könnte. Ich habe nichts verändert und jetzt baut es nicht mehr :(
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » Sa Apr 07, 2012 12:34 pm

Lustige Sache. Könntest du bitte folgende Info für mich posten:

1) locate libsqlite3.so
2) CMake nochmal ganz neu laufen lassen, also
mkdir build-new
cd build-new
cmake ..
Und davon die Ausgabe posten?
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Sa Apr 07, 2012 10:23 pm

So, hier die Ausgabe von locate:

Code: Alles auswählen

/home/bernhard/Programmieren/Crosscompiling/sqlite-autoconf-3071000/.libs/libsqlite3.so
/home/bernhard/Programmieren/Crosscompiling/sqlite-autoconf-3071000/.libs/libsqlite3.so.0
/home/bernhard/Programmieren/Crosscompiling/sqlite-autoconf-3071000/.libs/libsqlite3.so.0.8.6
/usr/lib/x86_64-linux-gnu/libsqlite3.so
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
/usr/lib32/libsqlite3.so.0
/usr/lib32/libsqlite3.so.0.8.6

Code: Alles auswählen

 cmake ..
-- The CXX compiler identification is GNU
-- The C compiler identification is GNU
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Building for architecture: x86_64
-- Warning level is 3
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   filesystem
--   system
--   program_options
-- Found SQLite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so 
-- Adding -fPIC flag for Linux x86_64 targets
-- Found Curses: /usr/lib/x86_64-linux-gnu/libcurses.so 
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   unit_test_framework
-- Configuring done
-- Generating done
-- Build files have been written to: /home/bernhard/Programmieren/dedupe2/dedupe/trunk/build
Das lustige daran ist, das jetzt alles wie gewünscht funktioniert :( Ich habe nochmal neu ausgecheckt, alles komplett neu erstellt und jetzt klappts. Das habe ich allerdings heute schon mal gemacht und da hat es nichts geholfen. Manchmal ist mir Cmake ein Rätsel...
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » So Apr 08, 2012 10:15 am

Bebu hat geschrieben:Das lustige daran ist, das jetzt alles wie gewünscht funktioniert :( Ich habe nochmal neu ausgecheckt, alles komplett neu erstellt und jetzt klappts. Das habe ich allerdings heute schon mal gemacht und da hat es nichts geholfen. Manchmal ist mir Cmake ein Rätsel...
Wenn ich ganz ehrlich bin, dachte ich mir das schon.
Wenn du CMake aufrufst, werden in der Datei "CMakeCache.txt" bestimmte Variablen, wie z.B. der Ort der Bibliotheken zwischengespeichert. Wenn sich inzwischen der Ort der Datei ändert (z.B. durch ein Update? Gabs da vl. ein SQlite update?), is es klar dass der Ort nicht mehr stimmt.
Wenn du CMake neu aufrufst, wird die Variable aus dem Cache gelesen. Damit sie neu gesucht wird, muss die CMakeCache.txt-Datei weg sein.

Ich bin mir nicht ganz sicher ob das vl. doch ein Bug meines Sqlite3Finder's ist, aber funktioniert, würd ichs lieber lassen.
Wie siehts bei den anderen aus? Geht noch alles?
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » Sa Mai 12, 2012 4:50 pm

Kurze Umfrage:
Welches Warning Level verwendet ihr am meisten? Wollt ihr, dass ich das Standard-Level heruntersetze?
Haters gonna hate, potatoes gonna potate.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Build-System

Beitrag von nufan » Sa Mai 12, 2012 4:51 pm

fat-lobyte hat geschrieben:Welches Warning Level verwendet ihr am meisten? Wollt ihr, dass ich das Standard-Level heruntersetze?
2, aber nur weil ich sonst die unzähligen Warnings vom Qt-Quellcode bekomme.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Sa Mai 12, 2012 4:53 pm

Wenn ich keine Qt Oberfläche baue, dann 3 ;) Aber zwei reicht mir normalerweise auch.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » Sa Mai 12, 2012 5:00 pm

nufan hat geschrieben:2, aber nur weil ich sonst die unzähligen Warnings vom Qt-Quellcode bekomme.
Stimmt da war ja dieser GCC bug... Normalerweise sollten alle Warnungen von Systemheadern unterdrückt werden, aber das gilt nicht für -Weffc++ ^^
Sch**** GCC. Auf den Tag an dem GCC eingestellt wird und Clang die Welt regiert freue ich mich schon.

Leute, es ist eure Entscheidung. Ich setze die defaults nach Entwicklerpräferenzen, also will ich einfach nur ne Zahl hören :-)
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Do Mai 24, 2012 12:32 pm

Ich habe mal wieder einen merkwürdigen Fehler. Ich habe zwei Konstruktoren von FileInfo um einen Parameter ergänzt. Jetzt hätte ich erwartet, das mir logischweise alle Stellen um die Ohren fliegen, an denen noch der veraltete Konstruktor eingesetzt wird, oder zumindest ein undefinied Reference fehler kommt. Aber sowohl Unittest, als auch Dedupe selber kompilieren fehlerfrei durch, obwohl neue und alte Konstruktorvariante noch gemischt vorhanden sind. Es ist fast so, als ob die meisten Bibliotheken nichts von der Änderung mitbekommen haben. Ich habe jetzt schon zweimal das ganze Projekt gelöscht und per Cmake neu erstellt, aber keine Änderung. Hast du eine Idee? Ich habe nämlich die Befürchtung, das es irgendwann ganz unvermittelt doch explodiert und keiner mehr weiß, warum.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » Do Mai 24, 2012 1:04 pm

Bebu hat geschrieben:Ich habe mal wieder einen merkwürdigen Fehler.
Nein, hast du nicht. Du hast merkwürdigerweise *keinen* Fehler. ;-)
Bebu hat geschrieben:Ich habe zwei Konstruktoren von FileInfo um einen Parameter ergänzt.
Was bedeutet "ergänzt"? Hast du sie einfach am Ende hinzugefügt? Ich glaube das macht gar nichts. Die Parameter werden in der Reihenfolge auf den Stack gepusht. Wenn die aufgerufene Funktion den letzten Parameter gar nicht abfragt, ist das egal.

Bebu hat geschrieben:Jetzt hätte ich erwartet, das mir logischweise alle Stellen um die Ohren fliegen, an denen noch der veraltete Konstruktor eingesetzt wird, oder zumindest ein undefinied Reference fehler kommt. Aber sowohl Unittest, als auch Dedupe selber kompilieren fehlerfrei durch, obwohl neue und alte Konstruktorvariante noch gemischt vorhanden sind. Es ist fast so, als ob die meisten Bibliotheken nichts von der Änderung mitbekommen haben. Ich habe jetzt schon zweimal das ganze Projekt gelöscht und per Cmake neu erstellt, aber keine Änderung.
Wenn das so ist, dann ist das auch kein Build-Problem. hast du die Änderungen ganz sicher abgespeichert?
Bebu hat geschrieben:Hast du eine Idee? Ich habe nämlich die Befürchtung, das es irgendwann ganz unvermittelt doch explodiert und keiner mehr weiß, warum.
Wenn das eingecheckt ist, kann ichs mir mal anschauen, musst nur sagen welcher Konstruktor von was und wo etwas hochgehen sollte. Kompiliers vl. noch mit einem anderen Compiler, z.B. Clang. Wenn es im SVN ist, kann das auch ich für dich machen.
Haters gonna hate, potatoes gonna potate.

Antworten