cmake-Projekt: Problem mit C-Library
Verfasst: 4. Januar 2007 16:45
Hi
Ich muss für mein Projekt eine C-Library verwenden, der Rest ist C++. Die Gui will ich mit QT bauen.
Jetzt hab ich leider ein Problem mit cmake, bei dem ich nicht weiter komm:
Das sind ja alles Funktionen, welche in der math.h definiert werden.
Ohne dem Einsatz von cmake kompiliert alles wunderbar. Wenn ich die resultierende Lib ins Projekt einbinden will (also extern kompiliert->kopiert->target_link_libraries hinzufügen), wird wieder fleißig gemeckert über fehlende fmod, acos, usw.
Bisher hab ich mich drum gedrückt und erst die Gui außenrum gebastelt, doch jetzt gehts nicht mehr ohne.
Kann mir hier irgend wer weiterhelfen? Wäre echt nett
Das Projekt gibts per Subversion:
Die Library liegt in src/sweph, das kleine Testprogramm im dortigen Unterverzeichnis test.
Die Ephimeriden gibts hier (swe_unix_src_1.71.00.tar.gz verwende ich). Ich hab enfach das enthaltene swetest.c kopiert, aber, wie gesagt, es geht nix
Grüße
Franz
Ich muss für mein Projekt eine C-Library verwenden, der Rest ist C++. Die Gui will ich mit QT bauen.
Jetzt hab ich leider ein Problem mit cmake, bei dem ich nicht weiter komm:
Code: Alles auswählen
make
[ 38%] Built target ephemeris
Linking C executable swetest
CMakeFiles/swetest.dir/swetest.o: In function `main':
swetest.c:(.text+0x23e): undefined reference to `fmod'
swetest.c:(.text+0x295): undefined reference to `fmod'
swetest.c:(.text+0x23ee): undefined reference to `fmod'
swetest.c:(.text+0x2445): undefined reference to `fmod'
CMakeFiles/swetest.dir/swetest.o: In function `print_line':
swetest.c:(.text+0x4e03): undefined reference to `floor'
swetest.c:(.text+0x4e21): undefined reference to `floor'
swetest.c:(.text+0x5675): undefined reference to `sqrt'
swetest.c:(.text+0x579f): undefined reference to `sqrt'
swetest.c:(.text+0x5d49): undefined reference to `sqrt'
swetest.c:(.text+0x5e67): undefined reference to `sqrt'
CMakeFiles/swetest.dir/swetest.o: In function `dms':
swetest.c:(.text+0x661a): undefined reference to `fmod'
CMakeFiles/swetest.dir/swetest.o: In function `do_eclipse_etc':
swetest.c:(.text+0x7317): undefined reference to `fmod'
swetest.c:(.text+0x77fa): undefined reference to `fmod'
swetest.c:(.text+0x7f80): undefined reference to `fmod'
swetest.c:(.text+0x8639): undefined reference to `fmod'
CMakeFiles/swetest.dir/swetest.o:swetest.c:(.text+0x8e9d): more undefined references to `fmod' follow
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `cos'
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `sin'
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `atan2'
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `pow'
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `log10'
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `tan'
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `atan'
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `asin'
/home/franz/Programmieren/Horosquope/svn_build/src/sweph/libephemeris.so: undefined reference to `acos'
collect2: ld gab 1 als Ende-Status zurück
make[2]: *** [src/sweph/test/swetest] Fehler 1
make[1]: *** [src/sweph/test/CMakeFiles/swetest.dir/all] Fehler 2
make: *** [all] Fehler 2Ohne dem Einsatz von cmake kompiliert alles wunderbar. Wenn ich die resultierende Lib ins Projekt einbinden will (also extern kompiliert->kopiert->target_link_libraries hinzufügen), wird wieder fleißig gemeckert über fehlende fmod, acos, usw.
Bisher hab ich mich drum gedrückt und erst die Gui außenrum gebastelt, doch jetzt gehts nicht mehr ohne.
Kann mir hier irgend wer weiterhelfen? Wäre echt nett
Das Projekt gibts per Subversion:
Code: Alles auswählen
svn co https://horosquope.svn.sourceforge.net/svnroot/horosquope horosquopeDie Ephimeriden gibts hier (swe_unix_src_1.71.00.tar.gz verwende ich). Ich hab enfach das enthaltene swetest.c kopiert, aber, wie gesagt, es geht nix
Grüße
Franz