Greg Ercolano wrote:
>> With Cmake, and the include directory set to /usr/include, I get 
>> zillions of errors of this sort:
>> <snip>
>> CMakeFiles/flP5.dir/gui/flP5.o: In function `cb_pb_calPrec':
>> /home/ehildum/src/flP5/current-1.1.8/src/gui/flP5.cxx:6532: undefined 
>> reference to `Fl_Wizard::value()'
>>     
>
>       Let's see the link line.
>
>       Offhand it sounds like -lfltk is missing from the link line.
>
>
>   
>> Now, with include directory /usr/include/FL:
>> <snip>
>> /home/ehildum/src/flP5/current-1.1.8/src/gui/main_flP5.cxx:1799: error: 
>> call of overloaded 'fabs(double)' is ambiguous
>> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/cmath:226:
>>  note: candidates are: float std::fabs(float)
>> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/cmath:230:
>>  note:                 long double std::fabs(long double)
>> <snip>
>>     
>
>       Seems like the compiler is having a hard time figuring out
>       which of the std fabs() functions to use when you call it
>       from line 1799 in your main_flP5.cxx.
>
>       There must be some ambiguity where either of the candidates
>       shown could work, and it's not sure what to do.
>
>       Try modifying your code to casting both the argument and the
>       return value so that it's clear to the compiler which overload
>       it should use (the floating or non-floating version), eg. if
>       you want the input and return to be a float, then use:
>
>               yourval = (float)fabs((float)(your_args_here));
>
>       My guess is that either the argument or the return value
>       or both are neither long or float, and it's having a hard time
>       figuring out which is right to use.
>
>       I'd say the above is unrelated to FLTK's math include file entirely.
>
>   
>> Now, with include directory /usr/include/FL and FL/math.h renamed to 
>> FL/Fl_math.h:
>>     
>
>       I wouldn't rename FL/math.h to something else.
>
>       FL's math.h should not collide with anything in the OS.
>
>       The only way it would is if you had something like -I/usr/include/FL
>       or -I/usr/include/Fl on the compile line, either of which is wrong,
>       and would cause overlaps.
>
>       Make sure your compile line does not have -I/any/thing/FL
>       and make sure your link line uses -lfltk and all the other
>       libs it needs to build.
>
>       If the FLTK include files are in some dir other then /usr/include,
>       then you would want e.g.:
>
>               -I/some/dir/fltk-x.x.x
>
>       ..and /not/:
>
>               -I/some/dir/fltk-x.x.x/FL
>               -I/some/dir/fltk-x.x.x/Fl
>
> _______________________________________________
> fltk mailing list
> [email protected]
> http://lists.easysw.com/mailman/listinfo/fltk
>
>   
Greg,
    I have played more with cmake, and I agree that -lfltk is missing 
and probably -lfltk_images too.  Its just not yet clear to me what to 
tell cmake to get it right.  I also agree renaming FL/math.h is wrong.  
I think the issue with math.h is that the compiler never sees 
/usr/include/math.h.  With -I/usr/include/FL set, FL/math.h is always 
found first, even when FL/math.h tries to include the system copy.  
Cmake seems to have a recipe for finding the FLTK installation which 
isn't working, probably because it isn't configured right.  I'll keep 
looking in the docs.

Thanks for your advice,
Ted Hildum

_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to