dclib-devel Mailing List for dlib C++ Library (Page 7)
Brought to you by:
davisking
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(6) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
(7) |
Aug
|
Sep
|
Oct
(7) |
Nov
(3) |
Dec
|
2009 |
Jan
(4) |
Feb
(3) |
Mar
(4) |
Apr
(3) |
May
(9) |
Jun
(5) |
Jul
(7) |
Aug
(2) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(1) |
2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(5) |
2017 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(10) |
Sep
|
Oct
(12) |
Nov
(1) |
Dec
(20) |
2018 |
Jan
(11) |
Feb
(10) |
Mar
(8) |
Apr
|
May
(8) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(1) |
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Davis K. <dav...@us...> - 2009-05-23 15:06:01
|
Yeah, I think you are right about the non-blocking reading. Right now the only way to implement a timeout on a read operation is to use the dlib::timeout class which is sort of a heavyweight solution. So having non-blocking reading seems like it would be a nice alternative. What do you usually do when you aren't blocking on a call to read? You have to be blocking on a call to something else right? sleep() maybe? Either that or you are spinning in a loop and killing CPU time. Cheers, Davis On Sat, May 23, 2009 at 2:21 AM, Miguel Grinberg <mig...@ve...>wrote: > Hi Davis, > > I guess for the write side this change is more of a "ready_to_send" > function. A non-blocking operation cannot be guaranteed, the only thing you > can ensure is that at least part of your data buffer will get through right > away. > > I'm only using the non-blocking read function right now, that one doesn't > seem to have any side effects, it seems to me that for read with the use of > select you can achieve true non-blocking behavior. > > In my experience non-blocking writing isn't all that common anyway, I > normally use non-blocking I/O to prevent my application from blocking while > waiting for the other end to send data, but when I'm the one sending I don't > mind blocking. > > Thanks for your email. > > Miguel > > Davis King wrote: > >> I have been testing out this patch for a while (on windows and linux) and >> trying to think if there are any funny corner cases. I also spent a lot of >> time a few years ago trying to work something like this into the connection >> object and ended up giving up but I forgot why until just now. >> Anyway, I found a problem related to sending data via send(). The problem >> is that send() will block, even if select() says it won't, if you give it a >> buffer larger than a certain value (the value depends on your platform and >> isn't at all portable). Linux allows you to set the MSG_DONTWAIT flag which >> fixes the issue but MSG_DONTWAIT isn't a POSIX thing and so isn't portable >> to other platforms. >> See http://www.opengroup.org/onlinepubs/009695399/functions/send.html for >> example. >> >> I think the only safe way to get this to work is to create the socket in >> non-blocking mode to begin with. Then we don't have to worry about >> functions blocking when hidden buffer size limits are hit. So I think that >> would mean making a new object that explicitly represented a non-blocking >> socket. >> I'm not in any dire need for non-blocking sockets so I probably won't be >> implementing this any time soon. >> You might also want to check out the asio library ( >> http://think-async.com/Asio/). It has a whole lot of support for varous >> kinds of networking modes. It is also, in all probability, the networking >> library that will eventually make it into C++ standard library. So it might >> be worth learning just for that reason :) >> >> Cheers, >> Davis >> >> On Fri, Apr 17, 2009 at 7:35 PM, miguelg50 <mig...@ve...<mailto: >> mig...@ve...>> wrote: >> >> Davis, >> >> Attached is the patch for the non-blocking socket changes I've >> made. I hope >> it is useful. >> >> Miguel >> >> >> > > |
From: Davis K. <dav...@us...> - 2009-05-23 14:47:33
|
Ah, indeed. I'll see about adding some sort of hook like this into the logger. It probably won't make it into the next release (which I plan on putting out in a few days) but I think I'll probably add it into the following release. Cheers, Davis On Wed, May 20, 2009 at 10:30 AM, 水波 <ti...@gm...> wrote: > I thought that if the dlib::logger has one interface or hook like these, > will let the matter be simpler. > > bool OnLog( > const std::string& logger_name, > const log_level& l, > const uint64 thread_id, > const std::string& log_content > ); > or > void doLog( > const std::string& logger_name, > const log_level& l, > const uint64 thread_id, > const std::string& log_content, > bool& handled // default false > ); > With this interface,it's possible to custom logger behavior or easy > to store log in database.And then, to analyze log is easier. > > 2009/5/19 Davis King <dav...@us...> > >> Why do you want to change the number of threads in the thread pool? >> Typically I would think you would set it to the number of > > |
From: Davis K. <dav...@us...> - 2009-05-19 11:05:49
|
Why do you want to change the number of threads in the thread pool? Typically I would think you would set it to the number of cores available on your system (which is certainly a fixed number). There is also a main "thread pool" in dlib that manages all threads the library creates via dlib::create_new_thread() and this thread pool is variable sized. It maintains a pool of recent threads so that when you need one they come right back out again. So if you just want to make starting up theads fast then you don't really need to worry about using a thread pool at all since it is automatic. But maybe that isn't what you are trying to do? :) You can set the log level to whatever you want. But it logs levels at and above the level you specify. I'm not sure you would really want to be able to say "log LDEBUG but don't tell me about warnings (LWARN) or errors (LERROR)" since they are probably very important. What are you doing where you want to log just one specific level? Maybe there is a better way. I'm not sure how I would implement logging just a specific thread id. This is because thread ids are basically assigned randomly each time a program runs. In some cases threads end up with the same ids they had in previous runs, but in general, the thread id number that comes out of a logger will get assigned to a different thread the next time you run the program. If you have high level persistent threads in your application it might be better to just give them their own logger objects with different names. I'll have to think about it. There might be some better way to select which threads to log. Cheers, Davis On Mon, May 18, 2009 at 11:46 PM, 水波 <ti...@gm...> wrote: > 1.thead_pool cann't resize; If I want to do this,I have to wait it finished > and then create a new one; > 2.I like to add log to one file.But sometimes I want to record log > with specific log_level or specific thread id > > Thanks for you great job; > > |
From: Davis K. <dav...@us...> - 2009-05-18 00:03:55
|
I have been testing out this patch for a while (on windows and linux) and trying to think if there are any funny corner cases. I also spent a lot of time a few years ago trying to work something like this into the connection object and ended up giving up but I forgot why until just now. Anyway, I found a problem related to sending data via send(). The problem is that send() will block, even if select() says it won't, if you give it a buffer larger than a certain value (the value depends on your platform and isn't at all portable). Linux allows you to set the MSG_DONTWAIT flag which fixes the issue but MSG_DONTWAIT isn't a POSIX thing and so isn't portable to other platforms. See http://www.opengroup.org/onlinepubs/009695399/functions/send.html for example. I think the only safe way to get this to work is to create the socket in non-blocking mode to begin with. Then we don't have to worry about functions blocking when hidden buffer size limits are hit. So I think that would mean making a new object that explicitly represented a non-blocking socket. I'm not in any dire need for non-blocking sockets so I probably won't be implementing this any time soon. You might also want to check out the asio library ( http://think-async.com/Asio/). It has a whole lot of support for varous kinds of networking modes. It is also, in all probability, the networking library that will eventually make it into C++ standard library. So it might be worth learning just for that reason :) Cheers, Davis On Fri, Apr 17, 2009 at 7:35 PM, miguelg50 <mig...@ve...> wrote: > Davis, > > Attached is the patch for the non-blocking socket changes I've made. I hope > it is useful. > > Miguel |
From: Davis K. <dav...@us...> - 2009-05-14 18:19:13
|
Are you declaring your server object at global scope? Doing that might cause this problem if you are running windows and the WSACleanup() function gets called before the server destructs itself. WSACleanup() basically cleans up the winsock resources before the program ends. It gets called when a certain global object is destroyed (take a look at line 74 in sockets/sockets_kernel_1.cpp). But once it is called I would expect all the sockets code to error out. -Davis 2009/5/14 Martin Slováček <ma...@ve...> > Hello Davis, > > I am using your (btw great) library in my diploma thesis. Recently, I have > been facing a problem. I am using the server::kernel_1a_c object. The whole > program runs correctly, but when exiting, I get an unhandled exception > pointing me to the line 565 of server_kernel_1.h: > > throw dlib::socket_error(EOTHER, "error occurred in > server_kernel_1::start()\nlistening socket returned error"); > The code I use to instantiate the object is as follows: > > theApp.getCtrlServer()->set_listening_port(CTRL_PORT); > theApp.getCtrlServer()->set_max_connections(1); > try{ > theApp.getCtrlServer()->start(); > } > catch (std::exception& e) > { > cout << e.what() << endl; > } > > Can you think of anything that could cause this? > > Thanks in advance, > > Martin Slovacek > |
From: Davis K. <dav...@gm...> - 2009-04-16 11:05:24
|
Actually, it just occurred to me that there is a very easy way to do this. The http server object is layered on top of the server_iostream object. So all you would need to do is make a C++ stream buffer object that did I/O using libssl (or whatever library is right) instead of directly with dlib::connection. Once you have that stream buffer you could make iostream objects that read and write from an SSL connection and could be used for anything really. So to see how to make a stream buffer take a look at the sockstreambuf_kernel_2 object. It is pretty straight forward. -Davis On Thu, Apr 16, 2009 at 6:45 AM, Steven Van Ingelgem <st...@va...>wrote: > As far as I understand the https implementation is an SSL layer whereover > the normal http traffic goes. Do you have any pointers where I might start > to create an SSL layer and integrate this one with the server? > > > Thanks, > Steven > > 2009/4/16 Davis King <dav...@gm...> > > That currently isn't part of dlib. You could make an implementation of >> that by laying an https implementation on top of the server object. Or >> maybe by modifying the current http server. But in any case, some new code >> would need to be written. >> >> -Davis >> >> >> On Thu, Apr 16, 2009 at 6:23 AM, Steven Van Ingelgem < >> st...@va...> wrote: >> >>> Hi Davis, >>> >>> >>> How would one create a https server via dlib? >>> >>> >>> Thanks, >>> Steven >>> >> >> > |
From: Steven V. I. <st...@va...> - 2009-04-16 10:46:00
|
As far as I understand the https implementation is an SSL layer whereover the normal http traffic goes. Do you have any pointers where I might start to create an SSL layer and integrate this one with the server? Thanks, Steven 2009/4/16 Davis King <dav...@gm...> > That currently isn't part of dlib. You could make an implementation of > that by laying an https implementation on top of the server object. Or > maybe by modifying the current http server. But in any case, some new code > would need to be written. > > -Davis > > > On Thu, Apr 16, 2009 at 6:23 AM, Steven Van Ingelgem < > st...@va...> wrote: > >> Hi Davis, >> >> >> How would one create a https server via dlib? >> >> >> Thanks, >> Steven >> > > |
From: Davis K. <dav...@gm...> - 2009-04-16 10:42:15
|
That currently isn't part of dlib. You could make an implementation of that by laying an https implementation on top of the server object. Or maybe by modifying the current http server. But in any case, some new code would need to be written. -Davis On Thu, Apr 16, 2009 at 6:23 AM, Steven Van Ingelgem <st...@va...>wrote: > Hi Davis, > > > How would one create a https server via dlib? > > > Thanks, > Steven > |
From: Steven V. I. <st...@va...> - 2009-03-18 10:53:40
|
That is maybe better, because than you could read the "raw post" as sometimes it is needed as well. Grtz, Steven 2009/3/18 Davis King <dav...@gm...> > Hmm. Well, what if the body variable just always contains the body (so it > has Content-Length bytes always)? That is the part that I checked into > subversion yesterday. Is that enough to do what you want to be able to > do? Seems like it should be since you can look at the body to see any POST > variables and any other post content. > > -Davis > > > On Wed, Mar 18, 2009 at 5:41 AM, Steven Van Ingelgem < > st...@va...> wrote: > >> Not exactly. >> >> The body contains the body (without the POST if there is a post). >> The post contains ONLY the post variables >> The get contains ONLY the get variables >> The queries contains both the post and the get variables (with the get >> variables overwriting the post if they have the exact same name). >> >> >> 2009/3/18 Davis King <dav...@gm...> >> >> Cool. It's definitely good to have access to the body of the POST data. >>> But why did you add the GET and POST maps? They seem to just contain the >>> same thing as the queries map? >>> >>> -Davis >>> >>> >>> On Tue, Mar 17, 2009 at 3:46 PM, Steven Van Ingelgem < >>> st...@va...> wrote: >>> >>>> After recompiling ;-) >>>> >>>> 2009/3/17 Steven Van Ingelgem <st...@va...> >>>> >>>> Hi Davis, >>>>> >>>>> >>>>> I added parse_url into the server, this way I can get GET, POST or both >>>>> (little like REQUEST in PHP). >>>>> I also added a parameter "body", which is needed for example in case of >>>>> webdav @ "PROPFIND". >>>>> >>>>> >>>>> Grtz, >>>>> Steven >>>>> >>>>> 2009/3/15 Davis King <dav...@gm...> >>>>> >>>>> Nice. I just finished checking all this into subversion. I changed it >>>>>> around a little. The biggest change was I put the two structs you made >>>>>> into the on_request() function's arguments because it occurred to me that >>>>>> otherwise we needed to add thread synchronization to the http_memory map. >>>>>> And that would have been a pain. This is simpler anyway. I'm not sure what >>>>>> I was thinking when I suggested adding those other extra helper function and >>>>>> the map :) >>>>>> >>>>>> So it looks like this now: >>>>>> http://davis.sytes.net/~davis/dlib/server_http_ex.cpp.html<http://davis.sytes.net/%7Edavis/dlib/server_http_ex.cpp.html> >>>>>> And I updated the specification file too: >>>>>> http://davis.sytes.net/~davis/dlib/dlib/server/server_http_abstract.h.html<http://davis.sytes.net/%7Edavis/dlib/dlib/server/server_http_abstract.h.html> >>>>>> >>>>>> Cheers, >>>>>> Davis >>>>>> >>>>>> >>>>>> On Sat, Mar 14, 2009 at 7:34 PM, Steven Van Ingelgem < >>>>>> st...@va...> wrote: >>>>>> >>>>>>> Corrected version (compiles on my linux and windows). Bugfixed all >>>>>>> around via the previous example.cpp. >>>>>>> >>>>>>> Seems to work ok. >>>>>>> >>>>>>> 2009/3/14 Steven Van Ingelgem <st...@va...> >>>>>>> >>>>>>> Please find attached the updated http server for dlib. >>>>>>>> >>>>>>>> Now you can easily extend it to have additional features without >>>>>>>> letting the on_request() string grow. >>>>>>>> >>>>>>>> >>>>>>>> Grtz, >>>>>>>> Steven >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > |
From: Davis K. <dav...@gm...> - 2009-03-18 10:48:51
|
Hmm. Well, what if the body variable just always contains the body (so it has Content-Length bytes always)? That is the part that I checked into subversion yesterday. Is that enough to do what you want to be able to do? Seems like it should be since you can look at the body to see any POST variables and any other post content. -Davis On Wed, Mar 18, 2009 at 5:41 AM, Steven Van Ingelgem <st...@va...>wrote: > Not exactly. > > The body contains the body (without the POST if there is a post). > The post contains ONLY the post variables > The get contains ONLY the get variables > The queries contains both the post and the get variables (with the get > variables overwriting the post if they have the exact same name). > > > 2009/3/18 Davis King <dav...@gm...> > > Cool. It's definitely good to have access to the body of the POST data. >> But why did you add the GET and POST maps? They seem to just contain the >> same thing as the queries map? >> >> -Davis >> >> >> On Tue, Mar 17, 2009 at 3:46 PM, Steven Van Ingelgem < >> st...@va...> wrote: >> >>> After recompiling ;-) >>> >>> 2009/3/17 Steven Van Ingelgem <st...@va...> >>> >>> Hi Davis, >>>> >>>> >>>> I added parse_url into the server, this way I can get GET, POST or both >>>> (little like REQUEST in PHP). >>>> I also added a parameter "body", which is needed for example in case of >>>> webdav @ "PROPFIND". >>>> >>>> >>>> Grtz, >>>> Steven >>>> >>>> 2009/3/15 Davis King <dav...@gm...> >>>> >>>> Nice. I just finished checking all this into subversion. I changed it >>>>> around a little. The biggest change was I put the two structs you made >>>>> into the on_request() function's arguments because it occurred to me that >>>>> otherwise we needed to add thread synchronization to the http_memory map. >>>>> And that would have been a pain. This is simpler anyway. I'm not sure what >>>>> I was thinking when I suggested adding those other extra helper function and >>>>> the map :) >>>>> >>>>> So it looks like this now: >>>>> http://davis.sytes.net/~davis/dlib/server_http_ex.cpp.html<http://davis.sytes.net/%7Edavis/dlib/server_http_ex.cpp.html> >>>>> And I updated the specification file too: >>>>> http://davis.sytes.net/~davis/dlib/dlib/server/server_http_abstract.h.html<http://davis.sytes.net/%7Edavis/dlib/dlib/server/server_http_abstract.h.html> >>>>> >>>>> Cheers, >>>>> Davis >>>>> >>>>> >>>>> On Sat, Mar 14, 2009 at 7:34 PM, Steven Van Ingelgem < >>>>> st...@va...> wrote: >>>>> >>>>>> Corrected version (compiles on my linux and windows). Bugfixed all >>>>>> around via the previous example.cpp. >>>>>> >>>>>> Seems to work ok. >>>>>> >>>>>> 2009/3/14 Steven Van Ingelgem <st...@va...> >>>>>> >>>>>> Please find attached the updated http server for dlib. >>>>>>> >>>>>>> Now you can easily extend it to have additional features without >>>>>>> letting the on_request() string grow. >>>>>>> >>>>>>> >>>>>>> Grtz, >>>>>>> Steven >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> > |
From: Steven V. I. <st...@va...> - 2009-03-18 09:42:01
|
Not exactly. The body contains the body (without the POST if there is a post). The post contains ONLY the post variables The get contains ONLY the get variables The queries contains both the post and the get variables (with the get variables overwriting the post if they have the exact same name). 2009/3/18 Davis King <dav...@gm...> > Cool. It's definitely good to have access to the body of the POST data. > But why did you add the GET and POST maps? They seem to just contain the > same thing as the queries map? > > -Davis > > > On Tue, Mar 17, 2009 at 3:46 PM, Steven Van Ingelgem < > st...@va...> wrote: > >> After recompiling ;-) >> >> 2009/3/17 Steven Van Ingelgem <st...@va...> >> >> Hi Davis, >>> >>> >>> I added parse_url into the server, this way I can get GET, POST or both >>> (little like REQUEST in PHP). >>> I also added a parameter "body", which is needed for example in case of >>> webdav @ "PROPFIND". >>> >>> >>> Grtz, >>> Steven >>> >>> 2009/3/15 Davis King <dav...@gm...> >>> >>> Nice. I just finished checking all this into subversion. I changed it >>>> around a little. The biggest change was I put the two structs you made >>>> into the on_request() function's arguments because it occurred to me that >>>> otherwise we needed to add thread synchronization to the http_memory map. >>>> And that would have been a pain. This is simpler anyway. I'm not sure what >>>> I was thinking when I suggested adding those other extra helper function and >>>> the map :) >>>> >>>> So it looks like this now: >>>> http://davis.sytes.net/~davis/dlib/server_http_ex.cpp.html<http://davis.sytes.net/%7Edavis/dlib/server_http_ex.cpp.html> >>>> And I updated the specification file too: >>>> http://davis.sytes.net/~davis/dlib/dlib/server/server_http_abstract.h.html<http://davis.sytes.net/%7Edavis/dlib/dlib/server/server_http_abstract.h.html> >>>> >>>> Cheers, >>>> Davis >>>> >>>> >>>> On Sat, Mar 14, 2009 at 7:34 PM, Steven Van Ingelgem < >>>> st...@va...> wrote: >>>> >>>>> Corrected version (compiles on my linux and windows). Bugfixed all >>>>> around via the previous example.cpp. >>>>> >>>>> Seems to work ok. >>>>> >>>>> 2009/3/14 Steven Van Ingelgem <st...@va...> >>>>> >>>>> Please find attached the updated http server for dlib. >>>>>> >>>>>> Now you can easily extend it to have additional features without >>>>>> letting the on_request() string grow. >>>>>> >>>>>> >>>>>> Grtz, >>>>>> Steven >>>>>> >>>>> >>>>> >>>> >>> >> > |
From: Davis K. <dav...@gm...> - 2009-03-18 01:51:22
|
Cool. It's definitely good to have access to the body of the POST data. But why did you add the GET and POST maps? They seem to just contain the same thing as the queries map? -Davis On Tue, Mar 17, 2009 at 3:46 PM, Steven Van Ingelgem <st...@va...>wrote: > After recompiling ;-) > > 2009/3/17 Steven Van Ingelgem <st...@va...> > > Hi Davis, >> >> >> I added parse_url into the server, this way I can get GET, POST or both >> (little like REQUEST in PHP). >> I also added a parameter "body", which is needed for example in case of >> webdav @ "PROPFIND". >> >> >> Grtz, >> Steven >> >> 2009/3/15 Davis King <dav...@gm...> >> >> Nice. I just finished checking all this into subversion. I changed it >>> around a little. The biggest change was I put the two structs you made >>> into the on_request() function's arguments because it occurred to me that >>> otherwise we needed to add thread synchronization to the http_memory map. >>> And that would have been a pain. This is simpler anyway. I'm not sure what >>> I was thinking when I suggested adding those other extra helper function and >>> the map :) >>> >>> So it looks like this now: >>> http://davis.sytes.net/~davis/dlib/server_http_ex.cpp.html<http://davis.sytes.net/%7Edavis/dlib/server_http_ex.cpp.html> >>> And I updated the specification file too: >>> http://davis.sytes.net/~davis/dlib/dlib/server/server_http_abstract.h.html<http://davis.sytes.net/%7Edavis/dlib/dlib/server/server_http_abstract.h.html> >>> >>> Cheers, >>> Davis >>> >>> >>> On Sat, Mar 14, 2009 at 7:34 PM, Steven Van Ingelgem < >>> st...@va...> wrote: >>> >>>> Corrected version (compiles on my linux and windows). Bugfixed all >>>> around via the previous example.cpp. >>>> >>>> Seems to work ok. >>>> >>>> 2009/3/14 Steven Van Ingelgem <st...@va...> >>>> >>>> Please find attached the updated http server for dlib. >>>>> >>>>> Now you can easily extend it to have additional features without >>>>> letting the on_request() string grow. >>>>> >>>>> >>>>> Grtz, >>>>> Steven >>>>> >>>> >>>> >>> >> > |
From: Steven V. I. <st...@va...> - 2009-02-26 16:37:24
|
The reason was a bug in CMake with the FindwxWidgets module :) 2009/2/25 Davis King <dav...@gm...> > Hmm, I haven't seen that before. Try doing a make VERBOSE=1 and look at > the command line it is using and see if it has any weird -D defines that > aren't identifiers. > > -Davis > > > On Wed, Feb 25, 2009 at 5:55 AM, Steven Van Ingelgem < > st...@va...> wrote: > >> Scanning dependencies of target dlib >> [ 1%] Building CXX object externals/dlib/CMakeFiles/dlib.dir/all/source.o >> <command-line>: error: macro names must be identifiers >> <command-line>: error: macro names must be identifiers >> make[2]: *** [externals/dlib/CMakeFiles/dlib.dir/all/source.o] Error 1 >> make[1]: *** [externals/dlib/CMakeFiles/dlib.dir/all] Error 2 >> >> > |
From: Davis K. <dav...@gm...> - 2009-02-25 11:27:52
|
Hmm, I haven't seen that before. Try doing a make VERBOSE=1 and look at the command line it is using and see if it has any weird -D defines that aren't identifiers. -Davis On Wed, Feb 25, 2009 at 5:55 AM, Steven Van Ingelgem <st...@va...>wrote: > Scanning dependencies of target dlib > [ 1%] Building CXX object externals/dlib/CMakeFiles/dlib.dir/all/source.o > <command-line>: error: macro names must be identifiers > <command-line>: error: macro names must be identifiers > make[2]: *** [externals/dlib/CMakeFiles/dlib.dir/all/source.o] Error 1 > make[1]: *** [externals/dlib/CMakeFiles/dlib.dir/all] Error 2 > > |
From: Davis K. <dav...@us...> - 2009-02-11 15:17:48
|
I actually made the tools for the dlib webpage myself. All of it is in subversion in the trunk/docs ( http://dclib.svn.sourceforge.net/viewvc/dclib/trunk/docs/) folder. The documentation is basically just a bunch of XML files and an XSLT stylesheet I wrote that turns those XML files into HTML. The stylesheet and XML documents are in the trunk/docs/docs folder. There is also the C++ pretty printer that turns code into HTML and that is another program I made. It is in the trunk/docs/htmlify folder. And to put it all together there are some shell scripts in the trunk/docs folder. Specifically, the trunk/docs/makedocs script runs everything and generates the webpage using the htmlify program and the XML files. Anyway, the most important part is the XSLT stylesheet since it is what turns the XML into the actual web pages you see. For example, if you open the trunk/docs/docs/index.xml file in firefox or IE you will see it displayed as a web page. But if you look at it in notepad or some other text editor you will see that it is just XML with a thing at the top that says "use the stylesheet to display this as a webpage." So if you want to use the documentation stuff I would recommend pulling the contents out of subversion and trying to get that setup to your liking. Also, at the top of the stylesheet file there is the following (at line 14 and 15): <!-- This is the ID you get from Google Webmaster Tools --> <xsl:variable name="google_verify_id">02MiiaFNVzS5/u0eQhsy3/knioFHsia1X3DXRpHkE6I=</xsl:variable> You should probably delete this or set it up with your own google webmaster tools id. As for design by contract, you can read about my take on in with respect to dlib here (http://dclib.sourceforge.net/howto_contribute.html#1). There is also a good description of it at the eiffel site ( http://archive.eiffel.com/doc/manuals/technology/contract/). As for any books on the subject, the best is probably Object-Oriented Software Construction by Bertrand Meyer. If you have any other questions feel free to ask :) Cheers, Davis On Wed, Feb 11, 2009 at 9:07 AM, guildivernos guildivernos < gui...@gm...> wrote: > Hi > > I want to know wich tools did you use to build your web page ( > http://dclib.sourceforge.net/index.html). I really like it and want to do > something similar for my page. I'm also looking at dlib for my C++ projects, > desing by contract looks very nice, I will try to learn it. Do you have any > books/Documents to recomend ? > > > Hope you can help me > Sorry for my english. > > Great work !!! > > Ramiro de Zavalia > |
From: Davis K. <dav...@gm...> - 2009-01-26 23:32:20
|
I just checked this in. Cheers, Davis On Mon, Jan 26, 2009 at 6:29 AM, Davis King <dav...@gm...> wrote: > Oops. I thought there was an option for that. I'll add it in later > today. > > -Davis > > > On Mon, Jan 26, 2009 at 6:05 AM, Steven Van Ingelgem < > st...@va...> wrote: > >> Hi Davis, >> >> >> Could you add an option to add/not add the png library? For example I >> don't use this one, but my executable has a dependency against that one... >> Very strange to say the least :-). >> By default it would be turned on of course. >> >> >> Thanks, >> Steven >> > > |
From: Arvind K. <kra...@gm...> - 2009-01-26 15:38:14
|
thats great, i appreciate the help. On Thu, Jan 22, 2009 at 10:36 PM, Davis King < dav...@us...> wrote: > Sure. Does this example program help you out? > > Cheers, > Davis > > > On Thu, Jan 22, 2009 at 12:43 PM, Arvind Kizhanatham <kra...@gm...>wrote: > >> Hello THere,I downloaded the dlib zipped files,extracted them and build >> them in a static lib. I was wondering if you can provide me an example >> program to call optimization routiens such as fmin_quasi_newton2. >> cheers >> arvind >> > > |
From: Davis K. <dav...@us...> - 2009-01-23 02:36:29
|
Sure. Does this example program help you out? Cheers, Davis On Thu, Jan 22, 2009 at 12:43 PM, Arvind Kizhanatham <kra...@gm...>wrote: > Hello THere,I downloaded the dlib zipped files,extracted them and build > them in a static lib. I was wondering if you can provide me an example > program to call optimization routiens such as fmin_quasi_newton2. > cheers > arvind > |
From: Davis K. <dav...@gm...> - 2009-01-13 11:10:55
|
This is just another one of the ways in which Microsoft breaks the C++ standard. I thought they only did this min/max thing in windows.h but I guess that isn't right. But in any case. I think you just need to #define NOMINMAX before you include any windows headers and everything is fine. Or try #including dlib/windows_magic.h at the very top of your program. -Davis On Tue, Jan 13, 2009 at 2:50 AM, Steven Van Ingelgem <st...@va...>wrote: > Hi Davis, > > > In "dlib.random_helpers.mersenne_twister", there are functions min/max. > Now the problem is that if I include "stdlib.h" before them, macros called > "min", "max" are defined. And as such this class doesn't compile anymore. > > Is there a possibility to rename those functions to remove the clash > between the defines and the class functions? > > > Thanks, > Steven > |
From: Davis K. <dav...@us...> - 2008-11-27 13:42:17
|
It is currently hard coded to 200. If you look at the code in dlib/server/server_http_1.h line 312 you can see where it is. You could just add another argument to the on_request() callback that lets you set it to something else. Or add some variable with thread local storage and a function that lets you set it to the return code you want, that might be better since on_request() is getting to be sort of long. Either of these should be easy to do, but feel free to bother me if you still have any troubles :) Cheers, Davis 2008/11/27 Martin Slováček <ma...@ce...> > Davvis, thanks for the tip, > finally I got it working. I have another (probably the last) question - how > do I change the HTTP status code of the respnse? I tried this > > string key=""; > string value="HTTP/1.0 404 Not Found"; > response_headers.add(key,value); > > > but to no avail. If you could give me any advice, I'd appreciate that. > > Thanks in advance, > > Martin Slovacek > > > On 26.11.2008 22:07, Davis King wrote: > > > > On Wed, Nov 26, 2008 at 1:49 PM, Martin Slováček <ma...@ce...> wrote: > >> Hi Davis, >> >> For my diploma thesis, I need to embed a HTTP server to a VST plug-ins >> host, which will be cotrolled by a Java applet. So, I need to be able to >> handle a request for a binary file (java *.class file). Is there a way >> how to do it using the http server object in your library? >> >> > I haven't done this myself but I think you should be able to send a file > back through HTTP if you put the file data in the response string and set > the appropriate HTTP headers. If I recall correctly all you need to do is > set the Content-Type header to something like application/class or whatever > the appropriate content type is for general binary data or java class files. > > > -Davis > > > |
From: Davis K. <dav...@us...> - 2008-11-26 21:07:57
|
On Wed, Nov 26, 2008 at 1:49 PM, Martin Slováček <ma...@ce...> wrote: > Hi Davis, > > For my diploma thesis, I need to embed a HTTP server to a VST plug-ins > host, which will be cotrolled by a Java applet. So, I need to be able to > handle a request for a binary file (java *.class file). Is there a way > how to do it using the http server object in your library? > > I haven't done this myself but I think you should be able to send a file back through HTTP if you put the file data in the response string and set the appropriate HTTP headers. If I recall correctly all you need to do is set the Content-Type header to something like application/class or whatever the appropriate content type is for general binary data or java class files. -Davis |
From: Davis K. <dav...@us...> - 2008-11-08 00:04:09
|
Hmm, what warning level did you compile it on? At level 3 in visual studio 2005 express edition I don't get any warnings. Or are you compiling at level 4? That would be a cool way to edit the registry and certainly easier than regedit. Thanks, I do try to make dlib easy to use :) I live down in Maryland near DC. Cheers, Davis On Fri, Nov 7, 2008 at 4:41 PM, Lowden, James K < jam...@al...> wrote: > Hello Davis, > > My experience with dlib. > > 3:55 PM: Found with Google searching for "c++ http server > library" > 4:20 PM: Built in VS 2005 > 4:25 PM: Sending you congratulations > > The build succeeded, but VS 2005 complains about some signed/unsigned > conversions. Considering the care you put into portability and that the > docs were updated two weeks ago, I thought you'd want to know. > > Here's the output from my first build: > > 1>------ Build started: Project: dlib, Configuration: Debug Win32 ------ > 1>Compiling... > 1>source.cpp > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\base_widgets > .h(1284) : warning C4267: 'argument' : conversion from 'size_t' to > 'unsigned long', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\base_widgets > .h(1285) : warning C4267: 'argument' : conversion from 'size_t' to > 'unsigned long', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 1336) : warning C4267: 'argument' : conversion from 'size_t' to > 'unsigned long', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 1345) : warning C4267: 'argument' : conversion from 'size_t' to > 'unsigned long', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 3489) : warning C4267: 'argument' : conversion from 'size_t' to 'const > dlib::uint32', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 3489) : warning C4267: 'argument' : conversion from 'size_t' to 'const > dlib::uint32', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 4081) : warning C4267: 'argument' : conversion from 'size_t' to > 'unsigned long', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 4086) : warning C4267: 'argument' : conversion from 'size_t' to > 'unsigned long', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 4662) : warning C4267: 'argument' : conversion from 'size_t' to 'long', > possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 4677) : warning C4267: 'argument' : conversion from 'size_t' to 'long', > possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 4982) : warning C4267: '=' : conversion from 'size_t' to 'long', > possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 4990) : warning C4267: '=' : conversion from 'size_t' to 'long', > possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp( > 5042) : warning C4267: 'initializing' : conversion from 'size_t' to > 'unsigned long', possible loss of data > 1>c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\queue\queue_sort_1.h(82) > : warning C4267: 'argument' : conversion from 'size_t' to 'const > unsigned long', possible loss of data > 1> > c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\queue\queue_sort_1.h(39) : > see reference to function template instantiation 'void > dlib::queue_sort_1<queue_base>::sort_this_queue<compare_type>(queue_base > &,long,const compare_type &)' being compiled > 1> with > 1> [ > 1> > queue_base=dlib::queue_kernel_c<dlib::queue_kernel_1<std::string,dlib::m > emory_manager_kernel_1<char,0>>>, > 1> > compare_type=dlib::open_file_box_helper::case_insensitive_compare > 1> ] > 1> > c:\usr\home\lowdenjk\projects\dlib-17.11\dlib\gui_widgets\widgets.cpp(35 > 26) : see reference to function template instantiation 'void > dlib::queue_sort_1<queue_base>::sort<dlib::open_file_box_helper::case_in > sensitive_compare>(const compare_type &)' being compiled > 1> with > 1> [ > 1> > queue_base=dlib::queue_kernel_c<dlib::queue_kernel_1<std::string,dlib::m > emory_manager_kernel_1<char,0>>>, > 1> > compare_type=dlib::open_file_box_helper::case_insensitive_compare > 1> ] > 1>Creating library... > 1>Build log was saved at > "file://c:\usr\home\lowdenjk\projects\httpd\registryd\dlib\Debug\BuildLo > g.htm" > 1>dlib - 0 error(s), 14 warning(s) > ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped > ========== > > I thought you might be interested in the goal of my little toy: a > web-based registry editor. Basically, use the registry as a backing > store for GET/POST, with externally-defined HTML forms for particular > parts. With your library installed as a Win32 service, the use could > point IE at localhost:5000 (say) and point-and-click certain changes. > Like, for example, changing the PATH without using a stupid 40-character > text-edit line. > > Nice work, by the way. Very nice work. > > Regards, > > --jkl > > P.S. I'm in New York. Where do you live? > > |
From: Davis K. <dav...@us...> - 2008-10-22 20:50:36
|
Where did you get the string "Y3JheWhhbGZsaWZlCg=="? Not everyone on the net necessairly agrees what a base64 encoding of something is. -Davis On Wed, Oct 22, 2008 at 10:46 AM, Steven Van Ingelgem <st...@va... > wrote: > Test/base64.cpp > > const string wiki_normal = "crayhalflife"; > const string wiki_encoded = "Y3JheWhhbGZsaWZlCg=="; > > This returns: > Running test_base64 | > > > !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > !!!!!!!!!!!!!!!!!!!!!!!!!!!!! TEST FAILED: test_base64 > !!!!!!!!!!!!!!!!!!!!!!!!!!!!! > > !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > > Failure message from test: > > Error occurred at line 56. > Error occurred in file C:\TEMP\mimemailer\externals\dlib\test\base64.cpp. > Error occurred in function void <unnamed>::base64_kernel_test() [with > base64 = dlib::base64_kernel_1]. > > Failing expression was sout.str() == wiki_normal. > sout.str(): crayhalflife > > wiki_normal: crayhalflife > > > > Testing Finished > Number of failed tests: 1 > Number of passed tests: 0 > > > If I look ok, this is the same? > |
From: Davis K. <dav...@us...> - 2008-10-07 13:03:13
|
I haven't tried it with that compiler. But I assume you are having trouble getting it working? On Tue, Oct 7, 2008 at 4:30 AM, Golanski, Yann wrote: > Do you have any experience compiling the library with the Intel > compiler? If so, what did you do? > > |
From: Davis K. <dav...@us...> - 2008-07-26 03:10:47
|
You can get the reg file and a saved bayesian network here: http://davis.sytes.net/~davis/stuff/ The network is the one from the wikipedia article on bayesian networks: http://en.wikipedia.org/wiki/Bayesian_network In it I have assumed a node value of 1 corresponds to T and 0 to F in the wikipedia example. And I also set the grass wet variable as evidence with a value of 1. So if you hit the calculate posterior probability table button you can see what all the probabilities are given that the grass is wet. For example, in the wikipedia article they calculate P(rain = true | grass wet = true) = 0.3577 and this is indeed the value you see if you look in the posterior probability table tab for the rain variable. The help menu tells you how to add/remove nodes. Either windows or linux is fine since dlib works on both platforms. Just pick whatever one you like the most. So since you already have Windows XP installed I would just stick with that. And if you do development in windows I would recomend you use the free version of visual studio since it has a pretty nice IDE and compiler. Hope that helps, Davis On Fri, Jul 25, 2008 at 10:49 PM, Nabeel Alzahrani <nza...@ho...>wrote: > I could not downloaded the attachement chm_files...reg > because Hotmail gave me error message : Windows Live Hotmail has blocked > some attachments in this mail because they appear unsafe. > I have three questuions: > Could you resend it after rename it to doc extension then I will rename it > back to its original extension (i think .reg) to bypass Hotmail blocking > engine? > Could you advice me what is the best platform (Windows XP or Linux), and > development environment should I use to modify, compile and test > bayes_net_gui_ex.cpp? For example I want to test compound probability p(A, > B, C) and compound probability with multiple evidences p(A,B,C | E, F, G) ? > Could you expain how to use the bayes_net_gui_ex.cpp? I run it but after > I saw the GUI I do not understand what the example expect me to input and > how? > > Thank you, > Nabeel > > > ------------------------------ > > > Date: Fri, 25 Jul 2008 07:50:44 -0400 > > From: dav...@us... > To: nza...@ho...; dcl...@li... > Subject: Re: dlib C++ library Compilation Errors > > > I downloaded the chm file from the snapshot folder and it works fine on my > computer. I have seen this problem before though. There is some setting in > the windows registry that causes it to not open chm files depending on where > they are located on your hard drive (and a few other things probably). > Anyway, I attached a registry change that will probably make the chm file > work. And in any event, there is html documentation in the zip file too. > > I just compiled the bayes net gui with this command: > "C:\swdev\source\examples>g++ bayes_net_gui_ex.cpp -I .. -DNO_MAKEFILE -l > gdi32 -l comctl32 -l user32 -l ws2_32 -l imm32" > > The easiest way to make visual studio projects, or any projects like > makefiles, is probably to use cmake. You can download it from > www.cmake.org. Once you have it installed you can create a visual studio > project by opening a command prompt in the examples folder and typing > "cmakesetup .". Then when the cmake window appears you select configure and > then choose what compiler you want to use. Then you click configure and > then ok. Then you will have a project ready to use and it should just > compile without any trouble. > > Hope that helps, > -Davis > > > > On Fri, Jul 25, 2008 at 5:21 AM, Nabeel Alzahrani <nza...@ho...> > wrote: > > Yes, I still have trouble getting the examples compiled in Windows XP. For > example, When I use the command "gcc bayes_net_ex.cpp", I got many error > messages but when I use the command "gcc bayes_net_ex.cpp", it runs without > any problems. However, when I try to run the other example "g++ > bayes_net_gui_ex", I got many error message whereas the command "g++ > bayes_net_gui_ex" waits for ever. > > Regarding snapshot at http://dclib.sf.net/snapshot I faced the follwing > problems: > When I downloaded the file dlib_documentation_snapshot-rev2432.chm, I can > see the content of the help file on the left side as a tree structure but > when I click any item on the left, an error message appears on the right > side. The error message is : "The address is not valid-Most likely causes: > There might be a typing error in the address. If you clicked on a link, it > may be out of date.-What you can try: Retype the address.Go back to the > previous page." > The second file is "dlib_snapshot-rev2432.Zip" works fine for the > bayes_net_ex.cpp example with Cygwin but still I have problem with the > example bayes_net_gui_ex.cpp with both Cygwin and Mingw. > > Anyway I decided to work with Windows instead of Linux because I need to > use Graphics with Bayes netwrok so I installed Visual C++ 2008 Express > Edition but I have some questions: > What project types and templates should I select from the new project > window and how can I setup Visual C++ to run the GUI Bayes example > "bayes_net_gui_ex" correctly. i.e, how can I put the dlib library inside the > Visual C++ and what types of changes do I need to do for the files in the > Solution explorer. For example, I have 3 folders (Header Files, Resource > Files, Source Files) and each folder has at least 2 files. Do I need to do > any changes for these files? > > Thank you, > Nabeel > > Error messages when I compile the bayes_net_gu_ex in mingw using > dlib_snapshot-rev2432. > > ------------------------------------------------------------------------------------------------------------ > Bill@PC ~/dlib_snapshot-rev2432/examples > $ g++ bayes_net_gui_ex.cpp > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x19c): > undefined reference to `dlib::base_window::show()' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x1aa): > undefined reference to `dlib::base_window::wait_until_closed() const' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x4bd): > undefined reference to > `dlib::named_rectangle::named_rectangle(dlib::drawable_window&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x4de): > undefined reference to > `dlib::tabbed_display::tabbed_display(dlib::drawable_window&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x6de): > undefined reference to `dlib::base_window::set_title(std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x7ad): > undefined reference to `dlib::base_window::set_size(int, int)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x997): > undefined reference to `dlib::button::set_name(std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0xa62): > undefined reference to `dlib::named_rectangle::set_name(std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0xb2d): > undefined reference to `dlib::label::set_text(std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0xbf8): > undefined reference to `dlib::toggle_button::set_name(std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0xcc3): > undefined reference to `dlib::label::set_text(std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0xd8e): > undefined reference to `dlib::label::set_text(std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0xe2b): > undefined reference to `dlib::tabbed_display::set_number_of_tabs(unsigned > long)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0xe83): > undefined reference to `dlib::tabbed_display::set_tab_name(unsigned long, > std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0xf56): > undefined reference to `dlib::tabbed_display::set_tab_name(unsigned long, > std::string const&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x1007): > undefined reference to `dlib::widget_group::add(dlib::drawable&, unsigned > long, unsigned long)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x1033): > undefined reference to `dlib::widget_group::add(dlib::drawable&, unsigned > long, unsigned long)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x1057): > undefined reference to `dlib::tabbed_display::set_tab_group(unsigned long, > dlib::widget_group&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x107b): > undefined reference to `dlib::tabbed_display::set_tab_group(unsigned long, > dlib::widget_group&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x222a): > undefined reference to `dlib::tabbed_display::~tabbed_display()' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x225c): > undefined reference to `dlib::named_rectangle::~named_rectangle()' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x26bd): > undefined reference to > `dlib::named_rectangle::named_rectangle(dlib::drawable_window&)' > C:/DOCUME~1/Bill/LOCALS~1/Temp/ccJiRkbZ.o:bayes_net_gui_ex.cpp:(.text+0x26de): > u > > ---------------------------------------------------------------------------------------------------------- > Error messages when I compile the bayes_net_gu_ex in cygwin using > dlib_snapshot-rev2432. > > ----------------------------------------------------------------------------------------------------------- > box_win()]+0x330): undefined reference to > `dlib::list_box_helper::list_box<std:: > basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~list_box() > ' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib20open_file_box_helper7box_winD0Ev[dlib::open_file_box_helper::box_win::~ > box_win()]+0x34f): undefined reference to > `dlib::list_box_helper::list_box<std:: > basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~list_box() > ' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib20open_file_box_helper7box_winD1Ev[dlib::open_file_box_helper::box_win::~ > box_win()]+0x4f): undefined reference to > `dlib::base_window::close_window()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib20open_file_box_helper7box_winD1Ev[dlib::open_file_box_helper::box_win::~ > box_win()]+0x2f2): undefined reference to > `dlib::list_box_helper::list_box<std:: > basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~list_box() > ' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib20open_file_box_helper7box_winD1Ev[dlib::open_file_box_helper::box_win::~ > box_win()]+0x311): undefined reference to > `dlib::list_box_helper::list_box<std:: > basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~list_box() > ' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib20open_file_box_helper7box_winD1Ev[dlib::open_file_box_helper::box_win::~ > box_win()]+0x330): undefined reference to > `dlib::list_box_helper::list_box<std:: > basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~list_box() > ' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib20open_file_box_helper7box_winD1Ev[dlib::open_file_box_helper::box_win::~ > box_win()]+0x34f): undefined reference to > `dlib::list_box_helper::list_box<std:: > basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~list_box() > ' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib8menu_bar9hide_menuEv[dlib::menu_bar::hide_menu()]+0x6b): undefined > refer > ence to `dlib::base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib10popup_menu20forwarded_on_keydownEmbm[dlib::popup_menu::forwarded_on_key > down(unsigned long, bool, unsigned long)]+0x260): undefined reference to > `dlib:: > base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib10popup_menu20forwarded_on_keydownEmbm[dlib::popup_menu::forwarded_on_key > down(unsigned long, bool, unsigned long)]+0x394): undefined reference to > `dlib:: > base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib10popup_menu20forwarded_on_keydownEmbm[dlib::popup_menu::forwarded_on_key > down(unsigned long, bool, unsigned long)]+0x7ec): undefined reference to > `dlib:: > base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib10popup_menu20forwarded_on_keydownEmbm[dlib::popup_menu::forwarded_on_key > down(unsigned long, bool, unsigned long)]+0x830): undefined reference to > `dlib:: > base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib10popup_menu17select_first_itemEv[dlib::popup_menu::select_first_item()]+ > 0x143): more undefined references to > `dlib::base_window::invalidate_rectangle(dl > ib::rectangle const&)' follow > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib8menu_bar9show_menuEm[dlib::menu_bar::show_menu(unsigned > long)]+0xba): un > defined reference to `dlib::base_window::get_pos(long&, long&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib8menu_bar9show_menuEm[dlib::menu_bar::show_menu(unsigned > long)]+0x13e): u > ndefined reference to `dlib::base_window::set_pos(long, long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib8menu_bar9show_menuEm[dlib::menu_bar::show_menu(unsigned > long)]+0x1a7): u > ndefined reference to > `dlib::base_window::invalidate_rectangle(dlib::rectangle c > onst&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib8menu_bar13set_main_fontEPKNS_4fontE[dlib::menu_bar::set_main_font(dlib:: > font const*)]+0x8b): undefined reference to > `dlib::base_window::invalidate_recta > ngle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib8menu_barD0Ev[dlib::menu_bar::~menu_bar()]+0x4c): undefined > reference to > `dlib::drawable::disable_events()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib8menu_barD0Ev[dlib::menu_bar::~menu_bar()]+0x64): undefined > reference to > `dlib::base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib8menu_barD0Ev[dlib::menu_bar::~menu_bar()]+0xc9): undefined > reference to > `dlib::drawable::~drawable()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib8menu_barD0Ev[dlib::menu_bar::~menu_bar()]+0xf3): undefined > reference to > `dlib::drawable::~drawable()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEED0Ev[dlib::timer_kernel_2<dlib::text_grid > >::~timer_kernel_2()]+0x57): undefined reference to > `dlib::threaded_object::wait > () const' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib9text_grid11move_cursorElll[dlib::text_grid::move_cursor(long, long, > long > )]+0x1d2): undefined reference to > `dlib::base_window::invalidate_rectangle(dlib: > :rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib9text_grid11move_cursorElll[dlib::text_grid::move_cursor(long, long, > long > )]+0x56f): undefined reference to > `dlib::base_window::invalidate_rectangle(dlib: > :rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region14scroll_to_rectERKNS_9rectangleE[dlib::scrollable_reg > ion::scroll_to_rect(dlib::rectangle const&)]+0x94): undefined reference to > `dlib > ::scroll_bar::set_slider_pos(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region14scroll_to_rectERKNS_9rectangleE[dlib::scrollable_reg > ion::scroll_to_rect(dlib::rectangle const&)]+0x124): undefined reference to > `dli > b::scroll_bar::set_slider_pos(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region14scroll_to_rectERKNS_9rectangleE[dlib::scrollable_reg > ion::scroll_to_rect(dlib::rectangle const&)]+0x198): undefined reference to > `dli > b::scroll_bar::set_slider_pos(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region14scroll_to_rectERKNS_9rectangleE[dlib::scrollable_reg > ion::scroll_to_rect(dlib::rectangle const&)]+0x22a): undefined reference to > `dli > b::scroll_bar::set_slider_pos(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region14scroll_to_rectERKNS_9rectangleE[dlib::scrollable_reg > ion::scroll_to_rect(dlib::rectangle const&)]+0x259): undefined reference to > `dli > b::scroll_bar::slider_pos() const' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region14scroll_to_rectERKNS_9rectangleE[dlib::scrollable_reg > ion::scroll_to_rect(dlib::rectangle const&)]+0x28a): undefined reference to > `dli > b::scroll_bar::slider_pos() const' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region14scroll_to_rectERKNS_9rectangleE[dlib::scrollable_reg > ion::scroll_to_rect(dlib::rectangle const&)]+0x302): undefined reference to > `dli > b::base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEE5startEv[dlib::timer_kernel_2<dlib::text_ > grid>::start()]+0x3d): undefined reference to `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEE5startEv[dlib::timer_kernel_2<dlib::text_ > grid>::start()]+0x64): undefined reference to `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEE5startEv[dlib::timer_kernel_2<dlib::text_ > grid>::start()]+0x75): undefined reference to > `dlib::timer_kernel_2_global_clock > ::add(dlib::timer_kernel_2_base*)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region13on_wheel_downEv[dlib::scrollable_region::on_wheel_do > wn()]+0x69): undefined reference to `dlib::scroll_bar::slider_pos() const' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region13on_wheel_downEv[dlib::scrollable_region::on_wheel_do > wn()]+0x84): undefined reference to > `dlib::scroll_bar::set_slider_pos(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region13on_wheel_downEv[dlib::scrollable_region::on_wheel_do > wn()]+0xae): undefined reference to `dlib::scroll_bar::slider_pos() const' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region13on_wheel_downEv[dlib::scrollable_region::on_wheel_do > wn()]+0xc7): undefined reference to > `dlib::scroll_bar::set_slider_pos(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region11on_wheel_upEv[dlib::scrollable_region::on_wheel_up() > ]+0x69): undefined reference to `dlib::scroll_bar::slider_pos() const' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region11on_wheel_upEv[dlib::scrollable_region::on_wheel_up() > ]+0x84): undefined reference to `dlib::scroll_bar::set_slider_pos(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region11on_wheel_upEv[dlib::scrollable_region::on_wheel_up() > ]+0xae): undefined reference to `dlib::scroll_bar::slider_pos() const' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region11on_wheel_upEv[dlib::scrollable_region::on_wheel_up() > ]+0xc7): undefined reference to `dlib::scroll_bar::set_slider_pos(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib9text_grid13on_user_eventEi[dlib::text_grid::on_user_event(int)]+0x9a): > u > ndefined reference to > `dlib::base_window::invalidate_rectangle(dlib::rectangle c > onst&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib17scrollable_region7set_posEll[dlib::scrollable_region::set_pos(long, > lon > g)]+0xe9): undefined reference to `dlib::scroll_bar::set_pos(long, long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib17scrollable_region7set_posEll[dlib::scrollable_region::set_pos(long, > lon > g)]+0x162): undefined reference to `dlib::scroll_bar::set_pos(long, long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib10scroll_bar6enableEv[dlib::scroll_bar::enable()]+0x16): undefined > refere > nce to `dlib::scroll_bar::show_slider()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib17scrollable_region11set_z_orderEl[dlib::scrollable_region::set_z_order(l > ong)]+0x66): undefined reference to `dlib::drawable::set_z_order(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib10scroll_bar11set_z_orderEl[dlib::scroll_bar::set_z_order(long)]+0x19): > u > ndefined reference to `dlib::drawable::set_z_order(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib10scroll_bar11set_z_orderEl[dlib::scroll_bar::set_z_order(long)]+0x30): > u > ndefined reference to `dlib::drawable::set_z_order(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib10scroll_bar11set_z_orderEl[dlib::scroll_bar::set_z_order(long)]+0x47): > u > ndefined reference to `dlib::drawable::set_z_order(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib10scroll_bar11set_z_orderEl[dlib::scroll_bar::set_z_order(long)]+0x5c): > u > ndefined reference to `dlib::drawable::set_z_order(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib10scroll_bar11set_z_orderEl[dlib::scroll_bar::set_z_order(long)]+0x73): > m > ore undefined references to `dlib::drawable::set_z_order(long)' follow > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib9text_gridD0Ev[dlib::text_grid::~text_grid()]+0x4c): undefined > reference > to `dlib::drawable::disable_events()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > ZN4dlib9text_gridD0Ev[dlib::text_grid::~text_grid()]+0x74): undefined > reference > to `dlib::base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib8drawable13set_main_fontEPKNS_4fontE[dlib::drawable::set_main_font(dlib:: > font const*)]+0x75): undefined reference to > `dlib::base_window::invalidate_recta > ngle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib15zoomable_region11set_z_orderEl[dlib::zoomable_region::set_z_order(long) > ]+0x66): undefined reference to `dlib::drawable::set_z_order(long)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib21directed_graph_drawerINS_23directed_graph_kernel_1INS_10bayes_nodeEcNS_ > > 23memory_manager_kernel_1IcLm0EEELb1EEEED0Ev[dlib::directed_graph_drawer<dlib::d > irected_graph_kernel_1<dlib::bayes_node, char, > dlib::memory_manager_kernel_1<cha > r, 0ul>, true> >::~directed_graph_drawer()]+0x4c): undefined reference to > `dlib: > :drawable::disable_events()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib21directed_graph_drawerINS_23directed_graph_kernel_1INS_10bayes_nodeEcNS_ > > 23memory_manager_kernel_1IcLm0EEELb1EEEED0Ev[dlib::directed_graph_drawer<dlib::d > irected_graph_kernel_1<dlib::bayes_node, char, > dlib::memory_manager_kernel_1<cha > r, 0ul>, true> >::~directed_graph_drawer()]+0x64): undefined reference to > `dlib: > :base_window::invalidate_rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib21directed_graph_drawerINS_23directed_graph_kernel_1INS_10bayes_nodeEcNS_ > > 23memory_manager_kernel_1IcLm0EEELb1EEEE13on_mouse_downEmmllb[dlib::directed_gra > ph_drawer<dlib::directed_graph_kernel_1<dlib::bayes_node, char, > dlib::memory_man > ager_kernel_1<char, 0ul>, true> >::on_mouse_down(unsigned long, unsigned > long, l > ong, long, bool)]+0x10b1): undefined reference to > `dlib::base_window::invalidate > _rectangle(dlib::rectangle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib21directed_graph_drawerINS_23directed_graph_kernel_1INS_10bayes_nodeEcNS_ > > 23memory_manager_kernel_1IcLm0EEELb1EEEE13on_mouse_moveEmll[dlib::directed_graph > _drawer<dlib::directed_graph_kernel_1<dlib::bayes_node, char, > dlib::memory_manag > er_kernel_1<char, 0ul>, true> >::on_mouse_move(unsigned long, long, > long)]+0x1c0 > ): undefined reference to > `dlib::base_window::invalidate_rectangle(dlib::rectang > le const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib21directed_graph_drawerINS_23directed_graph_kernel_1INS_10bayes_nodeEcNS_ > > 23memory_manager_kernel_1IcLm0EEELb1EEEE10on_keydownEmbm[dlib::directed_graph_dr > awer<dlib::directed_graph_kernel_1<dlib::bayes_node, char, > dlib::memory_manager_ > kernel_1<char, 0ul>, true> >::on_keydown(unsigned long, bool, unsigned > long)]+0x > 69): undefined reference to > `dlib::base_window::invalidate_rectangle(dlib::recta > ngle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib21directed_graph_drawerINS_23directed_graph_kernel_1INS_10bayes_nodeEcNS_ > > 23memory_manager_kernel_1IcLm0EEELb1EEEE10on_keydownEmbm[dlib::directed_graph_dr > awer<dlib::directed_graph_kernel_1<dlib::bayes_node, char, > dlib::memory_manager_ > kernel_1<char, 0ul>, true> >::on_keydown(unsigned long, bool, unsigned > long)]+0x > ed): undefined reference to > `dlib::base_window::invalidate_rectangle(dlib::recta > ngle const&)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib21directed_graph_drawerINS_23directed_graph_kernel_1INS_10bayes_nodeEcNS_ > > 23memory_manager_kernel_1IcLm0EEELb1EEEE10on_keydownEmbm[dlib::directed_graph_dr > awer<dlib::directed_graph_kernel_1<dlib::bayes_node, char, > dlib::memory_manager_ > kernel_1<char, 0ul>, true> >::on_keydown(unsigned long, bool, unsigned > long)]+0x > 1d2): more undefined references to > `dlib::base_window::invalidate_rectangle(dlib > ::rectangle const&)' follow > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEE6threadEv[dlib::timer_kernel_2<dlib::text > _grid>::thread()]+0x85): undefined reference to `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEE6threadEv[dlib::timer_kernel_2<dlib::text > _grid>::thread()]+0xac): undefined reference to `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEE6threadEv[dlib::timer_kernel_2<dlib::text > _grid>::thread()]+0xbd): undefined reference to > `dlib::timer_kernel_2_global_clo > ck::remove(dlib::timer_kernel_2_base*)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEE6threadEv[dlib::timer_kernel_2<dlib::text > _grid>::thread()]+0xc2): undefined reference to `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_9text_gridEE6threadEv[dlib::timer_kernel_2<dlib::text > _grid>::thread()]+0xd3): undefined reference to > `dlib::timer_kernel_2_global_clo > ck::add(dlib::timer_kernel_2_base*)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_10text_fieldEE6threadEv[dlib::timer_kernel_2<dlib::te > xt_field>::thread()]+0x85): undefined reference to > `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_10text_fieldEE6threadEv[dlib::timer_kernel_2<dlib::te > xt_field>::thread()]+0xac): undefined reference to > `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_10text_fieldEE6threadEv[dlib::timer_kernel_2<dlib::te > xt_field>::thread()]+0xbd): undefined reference to > `dlib::timer_kernel_2_global_ > clock::remove(dlib::timer_kernel_2_base*)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_10text_fieldEE6threadEv[dlib::timer_kernel_2<dlib::te > xt_field>::thread()]+0xc2): undefined reference to > `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_10text_fieldEE6threadEv[dlib::timer_kernel_2<dlib::te > xt_field>::thread()]+0xd3): undefined reference to > `dlib::timer_kernel_2_global_ > clock::add(dlib::timer_kernel_2_base*)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_7tooltipEE6threadEv[dlib::timer_kernel_2<dlib::toolti > p>::thread()]+0x85): undefined reference to `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_7tooltipEE6threadEv[dlib::timer_kernel_2<dlib::toolti > p>::thread()]+0xac): undefined reference to `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_7tooltipEE6threadEv[dlib::timer_kernel_2<dlib::toolti > p>::thread()]+0xbd): undefined reference to > `dlib::timer_kernel_2_global_clock:: > remove(dlib::timer_kernel_2_base*)' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_7tooltipEE6threadEv[dlib::timer_kernel_2<dlib::toolti > p>::thread()]+0xc2): undefined reference to `dlib::get_global_clock()' > > /cygdrive/c/DOCUME~1/Bill/LOCALS~1/Temp/ccCQxOWz.o:bayes_net_gui_ex.cpp:(.text$_ > > ZN4dlib14timer_kernel_2INS_7tooltipEE6threadEv[dlib::timer_kernel_2<dlib::toolti > p>::thread()]+0xd3): undefined reference to > `dlib::timer_kernel_2_global_clock:: > add(dlib::timer_kernel_2_base*)' > collect2: ld returned 1 exit status > > Bill@pc ~/dlib_snapshot-rev2432/examples > $ > ------------------------------ > Date: Thu, 24 Jul 2008 22:52:15 -0400 > > From: dav...@us... > To: nza...@ho...; dcl...@li... > Subject: Re: dlib C++ library Compilation Errors > > No problem. You should be able to compile the bayes_net_gu_ex in visual > studio or mingw (and even cygwin now). In fact, I use it in Windows XP all > the time. But I guess you are having trouble getting it compiled in Windows > XP still? > > -Davis > > On Thu, Jul 24, 2008 at 10:43 PM, Nabeel Alzahrani <nza...@ho...> > wrote: > > Thank you so much for your help. I have tried the library with Mingw and it > is working. > Actually I need to see the GUI of the bayes network of the > "bayes_net_gui_ex" example , so it is inevitable to install Linux in my > Windows XP :-( > > Nabeel > > ------------------------------ > Date: Thu, 24 Jul 2008 20:10:26 -0400 > From: dav...@us... > To: nza...@ho...; dcl...@li... > > Subject: Re: dlib C++ library Compilation Errors > > I just installed cygwin and modified the library so that it compiles > without any of these errors. I put a snapshot of it in > http://dclib.sf.net/snapshot so you can give that copy a try. > > -Davis > > On Tue, Jul 22, 2008 at 3:42 PM, Davis King < > dav...@us...> wrote: > > Ah, it is the std::wstring. Some of the windows ports of gcc to windows > are missing the wide character stuff from the standard C++ library. You can > maybe get it working by adding a #ifdef around the offending bits of code to > disable them when they are used on the version of gcc used by cygwin 1.5. > > Or you could try using mingw. I believe it's newest version isn't missing > these things from its library. > > I'll play around with cygwin when I get some free time and see if I can't > find a workaround. But let me know if you find an easy solution :) > > -Davis > > > On Tue, Jul 22, 2008 at 3:23 PM, Nabeel Alzahrani <nza...@ho...> > wrote: > > I did not put anything into the /home/Bill/dlib/dlib folder. If I just go > to the examples folder and do ""g++ -DNO_MAKEFILE bayes_net_ex.cpp", I got > the error messages: > ------------------------------------------------------ > > Bill@pc ~ > $ ls > dlib > > Bill@pc ~ > $ cd dlib > > Bill@pc ~/dlib > $ ls > New Text Document.txt dlib documentation.html makefile.txt > bayes_net_ex.cpp docs examples project.cpp > > Bill@pc ~/dlib > $ pwd > /home/Bill/dlib > > Bill@pc ~/dlib > $ cd examples > > Bill@pc ~/dlib/examples > $ g++ -DNO_MAKEFILE bayes_net_ex.cpp > bayes_net_ex.cpp:38:30: dlib/bayes_utils.h: No such file or directory > bayes_net_ex.cpp:39:30: dlib/graph_utils.h: No such file or directory > bayes_net_ex.cpp:40:24: dlib/graph.h: No such file or directory > bayes_net_ex.cpp:41:33: dlib/directed_graph.h: No such file or directory > bayes_net_ex.cpp:45: error: expected namespace-name before ';' token > bayes_net_ex.cpp:45: error: `<type error>' is not a namespace > bayes_net_ex.cpp: In function `int main()': > bayes_net_ex.cpp:59: error: expected namespace-name before ';' token > bayes_net_ex.cpp:59: error: `<type error>' is not a namespace > bayes_net_ex.cpp:64: error: `directed_graph' undeclared (first use this > function > ) > bayes_net_ex.cpp:64: error: (Each undeclared identifier is reported only > once fo > r each function it appears in.) > bayes_net_ex.cpp:64: error: `bayes_node' undeclared (first use this > function) > bayes_net_ex.cpp:64: error: `::kernel_1a_c' has not been declared > bayes_net_ex.cpp:64: error: expected `;' before "bn" > bayes_net_ex.cpp:80: error: `bn' undeclared (first use this function) > bayes_net_ex.cpp:88: error: `set_node_num_values' undeclared (first use > this fun > ction) > bayes_net_ex.cpp:93: error: `assignment' undeclared (first use this > function) > bayes_net_ex.cpp:93: error: expected `;' before "parent_state" > bayes_net_ex.cpp:102: error: `parent_state' undeclared (first use this > function) > > bayes_net_ex.cpp:102: error: `set_node_probability' undeclared (first use > this f > unction) > bayes_net_ex.cpp:167: error: expected init-declarator before '<' token > bayes_net_ex.cpp:167: error: expected `,' or `;' before '<' token > bayes_net_ex.cpp:168: error: `join_tree_type' undeclared (first use this > functio > n) > bayes_net_ex.cpp:168: error: expected `;' before "join_tree" > bayes_net_ex.cpp:174: error: `join_tree' undeclared (first use this > function) > bayes_net_ex.cpp:174: error: `create_moral_graph' undeclared (first use > this fun > ction) > bayes_net_ex.cpp:175: error: `create_join_tree' undeclared (first use this > funct > ion) > bayes_net_ex.cpp:180: error: `bayesian_network_join_tree' undeclared (first > use > this function) > bayes_net_ex.cpp:180: error: expected `;' before "solution" > bayes_net_ex.cpp:185: error: `solution' undeclared (first use this > function) > bayes_net_ex.cpp:200: error: `set_node_value' undeclared (first use this > functio > n) > bayes_net_ex.cpp:201: error: `set_node_as_evidence' undeclared (first use > this f > unction) > bayes_net_ex.cpp:205: error: expected `;' before "solution_with_evidence" > bayes_net_ex.cpp:209: error: `solution_with_evidence' undeclared (first use > this > function) > bayes_net_ex.cpp:255: error: `bayesian_network_gibbs_sampler' undeclared > (first > use this function) > bayes_net_ex.cpp:255: error: expected `;' before "sampler" > bayes_net_ex.cpp:274: error: `sampler' undeclared (first use this function) > bayes_net_ex.cpp:276: error: `node_value' undeclared (first use this > function) > > Bill@pc ~/dlib/examples > $ > ------------------------------------------------------ > However, if I changed the paths in the bayes_net_ex.cpp file to reflect the > location of the dlib library by changing the includes to: > #include "../dlib/bayes_utils.h" > #include "../dlib/graph_utils.h" > #include "../dlib/graph.h" > #include "../dlib/directed_graph.h" > and do ""g++ -DNO_MAKEFILE bayes_net_ex.cpp", I got the error messages: > ------------------------------------------------------- > > Bill@pc ~ > $ ls > dlib > > Bill@pc ~ > $ cd dlib > > Bill@pc ~/dlib > $ ls > New Text Document.txt dlib documentation.html makefile.txt > bayes_net_ex.cpp docs examples project.cpp > > Bill@pc ~/dlib > $ cd examples > > Bill@pc ~/dlib/examples > $ g++ bayes_net_ex.cpp > In file included from ../dlib/bayes_utils/../string.h:6, > from ../dlib/bayes_utils/bayes_utils.h:8, > from ../dlib/bayes_utils.h:6, > from bayes_net_ex.cpp:38: > ../dlib/bayes_utils/../string/string.h:88: error: expected init-declarator > befor > e "cast_to_wstring" > ../dlib/bayes_utils/../string/string.h:88: error: expected `;' before > "cast_to_w > string" > ../dlib/bayes_utils/../string/string.h: In function `const T > dlib::string_cast(c > onst wchar_t*)': > ../dlib/bayes_utils/../string/string.h:214: error: `wstring' is not a > member of > `std' > In file included from ../dlib/bayes_utils/../map/../unicode.h:6, > from ../dlib/bayes_utils/../map/../serialize.h:121, > from ../dlib/bayes_utils/../map/map_kernel_1.h:11, > from ../dlib/bayes_utils/../map.h:6, > from ../dlib/bayes_utils/bayes_utils.h:9, > from ../dlib/bayes_utils.h:6, > from bayes_net_ex.cpp:38: > ../dlib/bayes_utils/../map/../unicode/unicode.h: At global scope: > ../dlib/bayes_utils/../map/../unicode/unicode.h:521: error: expected > unqualified > -id before '&' token > ../dlib/bayes_utils/../map/../unicode/unicode.h:521: error: expected `,' or > `... > ' before '&' token > ../dlib/bayes_utils/../map/../unicode/unicode.h:522: error: ISO C++ forbids > decl > aration of `parameter' with no type > ../dlib/bayes_utils/../map/../unicode/unicode.h:524: error: expected > init-declar > ator before "convert_utf32_to_wstring" > ../dlib/bayes_utils/../map/../unicode/unicode.h:524: error: expected `,' or > `;' > before "convert_utf32_to_wstring" > ../dlib/bayes_utils/../map/../unicode/unicode.h:528: error: expected > init-declar > ator before "convert_mbstring_to_wstring" > ../dlib/bayes_utils/../map/../unicode/unicode.h:528: error: expected `,' or > `;' > before "convert_mbstring_to_wstring" > ../dlib/bayes_utils/../map/../unicode/unicode.h:533: error: expected > unqualified > -id before '&' token > ../dlib/bayes_utils/../map/../unicode/unicode.h:533: error: expected `,' or > `... > ' before '&' token > ../dlib/bayes_utils/../map/../unicode/unicode.h:534: error: ISO C++ forbids > decl > aration of `parameter' with no type > In file included from ../dlib/bayes_utils/../map/map_kernel_1.h:11, > from ../dlib/bayes_utils/../map.h:6, > from ../dlib/bayes_utils/bayes_utils.h:9, > from ../dlib/bayes_utils.h:6, > from bayes_net_ex.cpp:38: > ../dlib/bayes_utils/../map/../serialize.h:738: error: expected > unqualified-id be > fore '&' token > ../dlib/bayes_utils/../map/../serialize.h:738: error: expected `,' or `...' > befo > re '&' token > ../dlib/bayes_utils/../map/../serialize.h:741: error: ISO C++ forbids > declaratio > n of `parameter' with no type > ../dlib/bayes_utils/../map/../serialize.h: In function `void > dlib::serialize(int > )': > ../dlib/bayes_utils/../map/../serialize.h:742: error: `item' undeclared > (first u > se this function) > ../dlib/bayes_utils/../map/../serialize.h:742: error: (Each undeclared > identifie > r is reported only once for each function it appears in.) > ../dlib/bayes_utils/../map/../serialize.h:743: error: `out' undeclared > (first us > e this function) > ../dlib/bayes_utils/../map/../serialize.h: At global scope: > ../dlib/bayes_utils/../map/../serialize.h:752: error: variable or field > `deseria > lize' declared void > ../dlib/bayes_utils/../map/../serialize.h:752: error: `dlib::deserialize' > declar > ed as an `inline' variable > ../dlib/bayes_utils/../map/../serialize.h:752: error: `int > dlib::deserialize' re > declared as different kind of symbol > ../dlib/bayes_utils/../map/../serialize.h:677: error: previous declaration > of `t > emplate<class T, class alloc> void dlib::deserialize(std::vector<_Tp, > _Alloc>&, > std::istream&)' > ../dlib/bayes_utils/../map/../serialize.h:752: error: declaration of `int > dlib:: > deserialize' > ../dlib/bayes_utils/../map/../serialize.h:677: error: conflicts with > previous de > claration ` namespace dlib { }::deserialize' > ../dlib/bayes_utils/../map/../serialize.h:753: error: `wstring' is not a > member > of `std' > ../dlib/bayes_utils/../map/../serialize.h:753: error: `item' was not > declared in > this scope > ../dlib/bayes_utils/../map/../serialize.h:754: error: expected > primary-expressio > n before '&' token > ../dlib/bayes_utils/../map/../serialize.h:755: error: `in' was not declared > in t > his scope > ../dlib/bayes_utils/../map/../serialize.h:756: error: initializer > expression lis > t treated as compound expression > ../dlib/bayes_utils/../map/../serialize.h:756: error: expected `,' or `;' > before > '{' token > > Bill@pc ~/dlib/examples > $ > ------------------------------------------------------- > ------------------------------ > Date: Tue, 22 Jul 2008 07:16:09 -0400 > From: dav...@us... > To: nza...@ho... > Subject: Re: dlib C++ library Compilation Errors > CC: dcl...@li... > > > Don't put anything into the /home/Bill/dlib/dlib folder. That is probably > your problem. Try just going into the examples folder and doing "g++ > -DNO_MAKEFILE bayes_net_ex.cpp -I ..". > > You might also get linker errors about gdi32, comctl32, user32, ws2_32, or > imm32. So if that happens try adding -l gdi32 -l imm32, etc... > > Let me know if that doesn't fix your problem. > > -Davis > > On Tue, Jul 22, 2008 at 3:35 AM, Nabeel Alzahrani <nza...@ho...> > wrote: > > > Hello Davis > > I tried to run the example bayes_net_ex.cpp but I got many error messages. > I am using Cygwin version 1.5.25 (you can tell using the command uname -r) > under Windows XP Home edition with service pack 3. > I downloaded the library to a folder named dlib, so I have the following > folders: > /home/Bill/dlib/dlib > /home/Bill/dlib/docs > /home/Bill/dlib/examples > I moved the example bayes_net_ex.cpp from the folder > /home/Bill/dlib/examples to the folder /home/Bill/dlib/dlib and compiled it > using the command g++ bayes_net_ex.cpp and gcc bayes_net_ex.cpp with and > without using the compiler director #define NO_MAKEFILE as the first line. > > The error messages are: > $ g++ bayes_net_ex.cpp > > -------------------------------------------------------------------------------------------------------- > In file included from > dlib/bayes_utils/../string.h:6, > > > from > dlib/bayes_utils/bayes_utils.h:8, > > > from > dlib/bayes_utils.h:6, > > > from > bayes_net_ex.cpp:39: > > > dlib/bayes_utils/../string/string.h:88: > error: expected init-declarator before " > > > cast_to_wstring" > > > dlib/bayes_utils/../string/string.h:88: > error: expected `;' before "cast_to_wstr > > > ing" > > > dlib/bayes_utils/../string/string.h: In > function `const T dlib::string_cast(cons > > > t wchar_t*)': > > > dlib/bayes_utils/../string/string.h:214: > error: `wstring' is not a member of `st > > > d' > > > In file included from > dlib/bayes_utils/../map/../unicode.h:6, > > > from > dlib/bayes_utils/../map/../serialize.h:121, > > > from > dlib/bayes_utils/../map/map_kernel_1.h:11, > > > from > dlib/bayes_utils/../map.h:6, > > > from > dlib/bayes_utils/bayes_utils.h:9, > > > from > dlib/bayes_utils.h:6, > > > from > bayes_net_ex.cpp:39: > > > dlib/bayes_utils/../map/../unicode/unicode.h: > At global scope: > > > dlib/bayes_utils/../map/../unicode/unicode.h:521: > error: expected unqualified-id > > > before '&' token > > > dlib/bayes_utils/../map/../unicode/unicode.h:521: > error: expected `,' or `...' b > > > efore '&' token > > > dlib/bayes_utils/../map/../unicode/unicode.h:522: > error: ISO C++ forbids declara > > > tion of `parameter' with no type > > > dlib/bayes_utils/../map/../unicode/unicode.h:524: > error: expected init-declarato > > > r before "convert_utf32_to_wstring" > > > dlib/bayes_utils/../map/../unicode/unicode.h:524: > error: expected `,' or `;' bef > > > ore "convert_utf32_to_wstring" > > > dlib/bayes_utils/../map/../unicode/unicode.h:528: > error: expected init-declarato > > > r before "convert_mbstring_to_wstring" > > > dlib/bayes_utils/../map/../unicode/unicode.h:528: > error: expected `,' or `;' bef > > > ore "convert_mbstring_to_wstring" > > > dlib/bayes_utils/../map/../unicode/unicode.h:533: > error: expected unqualified-id > > > before '&' token > > > dlib/bayes_utils/../map/../unicode/unicode.h:533: > error: expected `,' or `...' b > > > efore '&' token > > > dlib/bayes_utils/../map/../unicode/unicode.h:534: > error: ISO C++ forbids declara > > > tion of `parameter' with no type > > > In file included from > dlib/bayes_utils/../map/map_kernel_1.h:11, > > > from > dlib/bayes_utils/../map.h:6, > > > from > dlib/bayes_utils/bayes_utils.h:9, > > > from > dlib/bayes_utils.h:6, > > > from > bayes_net_ex.cpp:39: > > > dlib/bayes_utils/../map/../serialize.h:738: > error: expected unqualified-id befor > > > e '&' token > > > dlib/bayes_utils/../map/../serialize.h:738: > error: expected `,' or `...' before > > > '&' token > > > dlib/bayes_utils/../map/../serialize.h:741: > error: ISO C++ forbids declaration o > > > f `parameter' with no type > > > dlib/bayes_utils/../map/../serialize.h: > In function `void dlib::serialize(int)': > > > > > > dlib/bayes_utils/../map/../serialize.h:742: > error: `item' undeclared (first use > > > this function) > > > dlib/bayes_utils/../map/../serialize.h:742: > error: (Each undeclared identifier i > > > s reported only once for each function > it appears in.) > > > dlib/bayes_utils/../map/../serialize.h:743: > error: `out' undeclared (first use t > > > his function) > > > dlib/bayes_utils/../map/../serialize.h: > At global scope: > > > dlib/bayes_utils/../map/../serialize.h:752: > error: variable or field `deserializ > > > e' declared void > > > dlib/bayes_utils/../map/../serialize.h:752: > error: `dlib::deserialize' declared > > > as an `inline' variable > > > dlib/bayes_utils/../map/../serialize.h:752: > error: `int dlib::deserialize' redec > > > lared as different kind of symbol > > > dlib/bayes_utils/../map/../serialize.h:677: > error: previous declaration of `temp > > > late void > dlib::deserialize(std::vector&, std > > > ::istream&)' > > > dlib/bayes_utils/../map/../serialize.h:752: > error: declaration of `int dlib::des > > > erialize' > > > dlib/bayes_utils/../map/../serialize.h:677: > error: conflicts with previous decla > > > ration ` namespace dlib { > }::deserialize' > > > dlib/bayes_utils/../map/../serialize.h:753: > error: `wstring' is not a member of > > > `std' > > > dlib/bayes_utils/../map/../serialize.h:753: > error: `item' was not declared in th > > > is scope > > > dlib/bayes_utils/../map/../serialize.h:754: > error: expected primary-expression b > > > efore '&' token > > > dlib/bayes_utils/../map/../serialize.h:755: > error: `in' was not declared in this > > > scope > > > dlib/bayes_utils/../map/../serialize.h:756: > error: initializer expression list t > > > reated as compound expression > > > dlib/bayes_utils/../map/../serialize.h:756: > error: expected `,' or `;' before '{ > > > ' token > > > > > > > > > _________________________________________________________________ > Time for vacation? WIN what you need- enter now! > http://www.gowindowslive.com/summergiveaway/?ocid=tag_jlyhm > > > > ------------------------------ > Time for vacation? WIN what you need. Enter Now!<http://www.gowindowslive.com/summergiveaway/?ocid=tag_jlyhm> > > > > > ------------------------------ > With Windows Live for mobile, your contacts travel with you. Connect on > the go.<http://www.windowslive.com/mobile/overview.html?ocid=TXT_TAGLM_WL_mobile_072008> > > > > ------------------------------ > Keep your kids safer online with Windows Live Family Safety. Help protect > your kids.<http://www.windowslive.com/family_safety/overview.html?ocid=TXT_TAGLM_WL_family_safety_072008> > > > > ------------------------------ > Use video conversation to talk face-to-face with Windows Live Messenger. Get > started.<http://www.windowslive.com/messenger/connect_your_way.html?ocid=TXT_TAGLM_WL_Refresh_messenger_video_072008> > |