News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

How to solve the problems of FLTK in Code::Blocks

Started by hrz, June 18, 2021, 09:42:44 AM

Previous topic - Next topic

hrz

I am read the book:Programming principles and practice using C++. And now, I am learning to use GUI library. I've downloaded the FLTK and compiled it.I've built a simple FLTK project to test and it worked.But when I inputed the example codes and downloaded all the GUI files in www.stroustrup.com and included them,they were failed to compiled.
The basic message are:
1. OS:windows 10,
2. Code::Blocks version:17.12,
3.FLTK version: 1.3.5,
The compile message are:
1.cmath:1094:11: error: '::hypot' has not been declared
   using ::hypot;
           ^
2.gcc/mingw32/5.1.0/include/c++/bits/locale_facets_nonio.h:1971:5: error: template-id 'do_get<>' for 'String std::__cxx11::messages<char>::do_get(std::messages_base::catalog, int, int, const String&) const' does not match any template declaration
     messages<char>::do_get(catalog, int, int, const string&) const;
3.Window.h:25:18: error: expected ')' before 'xy'
     Window(Point xy, int w, int h, const string& title);
4.Point.h:33:18: error: expected ')' before 'xy'
5.Point.h:98:5: error: 'Vector_ref' does not name a type
     Vector_ref<Button> selection;
.................

Process terminated with status 1 (0 minute(s), 2 second(s))
50 error(s), 30 warning(s) (0 minute(s), 2 second(s))

why the <cmath> should be error?
why "Point.h" is error?
I don't know how to solve these problems, anyone could help me?
Thanks!!!

oBFusCATed

If you're using GCC 5.1 it is probably too old to have support for this function. Are you using c++11 mode?
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

hrz

Yes! my gcc version is 5.1. I've updated to 8.1 now. The errors of <cmath> disapear. but it still fail.
Errors like this:
1.MinGW\include/winnt.h:2399:2: error: #error "undefined processor type"
#error "undefined processor type"
  ^~~~~

2.include/crtdefs.h:35:1: error: '__MINGW_EXTENSION' does not name a type; did you mean 'FL_MINOR_VERSION'
__MINGW_EXTENSION typedef unsigned __int64 size_t;
^~~~~~~~~~~~~~~~~
3.include/crtdefs.h:138:9: error: '__time64_t' does not name a type; did you mean '__time32_t'?
typedef __time64_t time_t;
         ^~~~~~~~~~
4.include/stdlib.h:348:58: error: 'size_t' has not been declared
_CRTIMP int __cdecl __MINGW_NOTHROW mblen  (const char*, size_t);
                                                          ^~~~~~
5.include/stdlib.h:356:47: error: 'size_t' was not declared in this scope
_CRTIMP void* __cdecl __MINGW_NOTHROW malloc (size_t) __MINGW_ATTRIB_MALLOC;
                                               ^~~~~~
............
Process terminated with status 1 (0 minute(s), 10 second(s))
50 error(s), 2 warning(s) (0 minute(s), 10 second(s))

It still have 50 errors,but this time isn't  the <cmath>.

Thank you very much!!!

hrz

Quote from: oBFusCATed on June 18, 2021, 09:48:16 AM
If you're using GCC 5.1 it is probably too old to have support for this function. Are you using c++11 mode?

Miguel Gimenez

Did you remove 5.1 version completely?

Post a full rebuild log, read this

hrz

Quote from: Miguel Gimenez on June 18, 2021, 02:24:08 PM
Did you remove 5.1 version completely?

Post a full rebuild log, read this
I am so sorry that I make a mistake! The stroutrup has said:   Beware: this is code recovered from a loss of my previous website and my contain errors. Bug fixes and corrections are welcome. But I haven seen it. I am so sorry!

hrz

Quote from: Miguel Gimenez on June 18, 2021, 02:24:08 PM
Did you remove 5.1 version completely?

Post a full rebuild log, read this
I have changed the code now. But I still failed. The compile message is:
1.clang++ -L/home/hrz/fltk-sdk/lib -o bin/Debug/graph obj/Debug/Graph.o obj/Debug/GUI.o obj/Debug/main.o obj/Debug/Simple_window.o obj/Debug/Window.o  /usr/local/lib/libfltk.a -lXrender -lXcursor -lXfixes -lXext -lXft -lfontconfig -lpthread -ldl -lm -lX11  /home/hrz/fltk-sdk/lib/libfltk.a /home/hrz/fltk-sdk/lib/libfltk_forms.a /home/hrz/fltk-sdk/lib/libfltk_gl.a /home/hrz/fltk-sdk/lib/libfltk_images.a
/usr/bin/ld: /home/hrz/fltk-sdk/lib/libfltk_images.a(Fl_JPEG_Image.cxx.o): in function `Fl_JPEG_Image::Fl_JPEG_Image(char const*)':
Fl_JPEG_Image.cxx:(.text+0xea): undefined reference to `jpeg_std_error'
/usr/bin/ld: Fl_JPEG_Image.cxx:(.text+0x1b7): undefined reference to `jpeg_finish_decompress'
/usr/bin/ld: Fl_JPEG_Image.cxx:(.text+0x1e3): undefined reference to `jpeg_destroy_decompress'


I still can't solve it!

Miguel Gimenez

QuoteI have changed the code now

Well, you have changed the code, the compiler (MiinGW to Clang) and the OS (Windows to Linux) in a row.

You must add a jpeg library to the linker, probably libjpeg.so

hrz

Quote from: Miguel Gimenez on June 18, 2021, 06:25:17 PM
QuoteI have changed the code now

Well, you have changed the code, the compiler (MiinGW to Clang) and the OS (Windows to Linux) in a row.

You must add a jpeg library to the linker, probably libjpeg.so
I don't know how to add it. In my FLTK library, I can't find anyone who's name just like libjpeg.
I read the codes in "libfltk_jpeg.h", the functon proto just match it. So i think it is the problem of code::blocks setting.

stahta01

C Programmer working to learn more about C++.
On Windows 10 64 bit and Windows 11 64 bit.
--
When in doubt, read the CB WiKi FAQ. [url="http://wiki.codeblocks.org"]http://wiki.codeblocks.org[/url]