target_link_libraries gives me: /usr/bin/ld: CMakeFiles/pantheon-terminal.dir/src/TerminalWidget.c.o: undefined reference to symbol 'floor@@GLIBC_2.2.5' /usr/bin/ld: note: 'floor@@GLIBC_2.2.5' is defined in DSO /usr/lib/libm.so.6 so try adding it to the linker command line /usr/lib/libm.so.6: could not read symbols: Invalid operation collect2: error: ld returned 1 exit status
So I tried: find_library (M_LIB m) target_link_libraries (pantheon-terminal ${M_LIB}) add_subdirectory (po) add_executable (pantheon-terminal ${VALA_C}) But I get: CMake Error at CMakeLists.txt:66 (target_link_libraries): Cannot specify link libraries for target "pantheon-terminal" which is not built by this project. Any ideas? On Thu, Sep 13, 2012 at 8:25 PM, xapantu <xapa...@gmail.com> wrote: > « l » is only here to tell gcc it is a lib, the lib name is actually « m > ». > Just remember that link_libraries is deprecated, please use > target_link_libraries :P (well, I don't think it will be removed from CMake > before a lot of time, but it is useless to keep writing code with it.) > > Lucas > > > On 13/09/2012 14:28, Darcy Brás da Silva wrote: > > Humm, if the fix was passing m, i guess cmake passes l prefix for us... > Nice! > On Thu, 2012-09-13 at 11:23 +0100, David Gomes wrote: > > Well Darcy, that email was @voldyman ;) > > Regarding the general issue, I found a way to fix it, thanks to > devidfil's Github link, I just added: > > link_libraries (m) > > Right before the add_subdirectory call and it's working for everybody > now. > > On Thu, Sep 13, 2012 at 11:16 AM, Darcy Brás da > Silva<dardeve...@cidadecool.com> <dardeve...@cidadecool.com> wrote: > I'm not saying to implement it ourselves. I'm saying to make a > vapi to > have access of it from C <math.h> library in Vala, which is a > very > different thing :) > On Thu, 2012-09-13 at 09:50 +0100, David Gomes wrote: > > Implementing Math.floor and Math.ceil ourselves would work, > but I'm > > trying to avoid that for obvious reasons :) > > > > On Thu, Sep 13, 2012 at 4:22 AM, Voldyman > <voldyman...@gmail.com> <voldyman...@gmail.com> > > wrote: > > If we implement Math.floor function in pantheon > terminal > > source wouldn't that work? > > > > > > On 13-Sep-2012, at 3:29 AM, David Gomes > > <da...@elementaryos.org> <da...@elementaryos.org> wrote: > > > > > > > > > On the terminal we now need Math.floor and > Math.ceil for > > > zooming in and out using Ctrl-+ and Ctrl--. > > > > > > This brought along an issue when building the > termina: > > > > > > /usr/bin/ld: > > > > CMakeFiles/pantheon-terminal.dir/src/TerminalWidget.c.o: > > > undefined reference to symbol 'floor@@GLIBC_2.2.5' > > > /usr/bin/ld: note: 'floor@@GLIBC_2.2.5' is defined > in > > > DSO /usr/lib/libm.so.6 so try adding it to the > linker > > > command line > > > /usr/lib/libm.so.6: could not read symbols: > Invalid > > > operation > > > collect2: error: ld returned 1 exit status > > > make[2]: *** [pantheon-terminal] Error 1 > > > > > > In order to fix this, Ricotz suggested using the > "-lm" flag > > > on the linker. I tried to do it and then it worked > just > > > fine. However, for Victored and Eshat on Ubuntu > (Luna), that > > > made it stop working. > > > > > > It seems that on Ubuntu the linker includes lm by > default, > > > and on Arch it doesn't, and reincluding it causes > troubles > > > on Ubuntu. > > > > > > On CMakeLists.txt I just added the following to > make it > > > compile: > > > > > > set (CMAKE_EXE_LINKER_FLAGS "-lm") > > > > > > Either way, I want Pantheon Terminal to compile > across all > > > GNU/Linux distributions, so I need a way to solve > this. > > > > > > === modified file 'CMakeLists.txt' > > > --- CMakeLists.txt 2012-07-26 20:23:31 +0000 > > > +++ CMakeLists.txt 2012-09-12 19:18:34 +0000 > > > @@ -30,6 +30,7 @@ > > > find_package(PkgConfig) > > > pkg_check_modules(DEPS REQUIRED gthread-2.0 gtk > +-3.0 > > > granite vte-2.90 libnotify gdk-3.0) > > > > > > +set (DEPS_LADD "${DEPS_LADD} -lm") > > > add_definitions(${DEPS_CFLAGS}) > > > > > > link_libraries(${DEPS_LIBRARIES}) > > > > > > Ricotz suggesting the avobe path to fix the issue. > I applied > > > that patch and my patched CMakeLists.txt is > attached. > > > However, with this patch I can't build it on Arch, > but > > > Victored managed to built it on Ubuntu. I get the > same good > > > old error: > > > > > > /usr/bin/ld: > > > > CMakeFiles/pantheon-terminal.dir/src/TerminalWidget.c.o: > > > undefined reference to symbol 'floor@@GLIBC_2.2.5' > > > /usr/bin/ld: note: 'floor@@GLIBC_2.2.5' is defined > in > > > DSO /usr/lib/libm.so.6 so try adding it to the > linker > > > command line > > > /usr/lib/libm.so.6: could not read symbols: > Invalid > > > operation > > > collect2: error: ld returned 1 exit status > > > > > > So I'd appreciate some help guys, since I'm fairly > new to > > > CMake. Oh, and this is the branch we're working > on: > > > > > > > > https://code.launchpad.net/~elementary-dev-community/pantheon-terminal/zoom-in-out > > > > > > Thank you. > > > > > > <CMakeLists.txt> > > > -- > > > Mailing list: > > > https://launchpad.net/~elementary-dev-community > > > Post to : > elementary-dev-community@lists.launchpad.net > > > Unsubscribe : > > > https://launchpad.net/~elementary-dev-community > > > More help : https://help.launchpad.net/ListHelp > > > > > > > > -- > Darcy Brás da Silva <dardeve...@cidadecool.com> > <dardeve...@cidadecool.com> > > > > > > -- > Mailing list: https://launchpad.net/~elementary-dev-community > Post to : elementary-dev-community@lists.launchpad.net > Unsubscribe : https://launchpad.net/~elementary-dev-community > More help : https://help.launchpad.net/ListHelp > >
-- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp