Compiling

For help with general CEGUI usage:
- Questions about the usage of CEGUI and its features, if not explained in the documentation.
- Problems with the CMAKE configuration or problems occuring during the build process/compilation.
- Errors or unexpected behaviour.

Moderators: CEGUI MVP, CEGUI Team

RickP
Not too shy to talk
Not too shy to talk
Posts: 37
Joined: Sat Mar 13, 2010 03:52

Compiling

Postby RickP » Sat Mar 20, 2010 02:33

I get 10 errors when compiling the source. I'm just wondering if some of these libraries already come with cegui when I download the cegui source or if I have to go get these libraries in order to compile cegui.

Looks like pcre, freetype, SILLY, & expat

Code: Select all

Error   1   fatal error C1083: Cannot open include file: 'pcre.h': No such file or directory   c:\cegui-0.7.1\cegui\include\ceguipcreregexmatcher.h   33   CEGUIBase
Error   7   fatal error C1083: Cannot open include file: 'ft2build.h': No such file or directory   c:\cegui-0.7.1\cegui\include\ceguifreetypefont.h   37   CEGUIBase
Error   8   fatal error C1083: Cannot open include file: 'ft2build.h': No such file or directory   c:\cegui-0.7.1\cegui\include\ceguifreetypefont.h   37   CEGUIBase
Error   26   fatal error C1083: Cannot open include file: 'ft2build.h': No such file or directory   c:\cegui-0.7.1\cegui\include\ceguifreetypefont.h   37   CEGUIBase
Error   27   fatal error C1083: Cannot open include file: 'ft2build.h': No such file or directory   c:\cegui-0.7.1\cegui\include\ceguifreetypefont.h   37   CEGUIBase
Error   44   fatal error C1083: Cannot open include file: 'pcre.h': No such file or directory   c:\cegui-0.7.1\cegui\include\ceguipcreregexmatcher.h   33   CEGUIBase
Error   45   fatal error C1083: Cannot open include file: 'SILLY.h': No such file or directory   c:\cegui-0.7.1\cegui\src\imagecodecmodules\sillyimagecodec\ceguisillyimagecodec.cpp   32   CEGUISILLYImageCodec
Error   46   fatal error C1083: Cannot open include file: 'expat.h': No such file or directory   c:\cegui-0.7.1\cegui\src\xmlparsermodules\expatparser\ceguiexpatparser.cpp   35   CEGUIExpatParser
Error   75   fatal error LNK1104: cannot open file '../../../../lib/CEGUIBase.lib'   CEGUIOpenGLRenderer   CEGUIOpenGLRenderer
Error   76   fatal error LNK1104: cannot open file '../../../../lib/CEGUIBase.lib'   CEGUIFalagardWRBase   CEGUIFalagardWRBase

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: Compiling

Postby CrazyEddie » Sat Mar 20, 2010 08:30

As well as the source, you'll need the precomplied dependencies package specific for your compiler. I looked at the 'Obtaining the code' page that has the links, and have to admit that the current list of binary packages is far from clear as regards to which are SDKs and which are dependency packs.

So, choose one of these:

0.7.x-r1 Dependencies for MSVC++ 2003 (vc7.1)
0.7.x-r1 Dependencies for MSVC++ 2005 (vc8)
0.7.x-r1 Dependencies for MSVC++ 2008 (vc9)

HTH

CE.

RickP
Not too shy to talk
Not too shy to talk
Posts: 37
Joined: Sat Mar 13, 2010 03:52

Re: Compiling

Postby RickP » Sat Mar 20, 2010 11:59

Maybe I'm missing something, but those dependencies look like they are precompiled. I'm looking to compile these into the CEGUI projects so I don't have to include separate libs and dlls in the final CEGUI package that I'm making for the Leadwerks engine folks. Do you have a link or can you point me in the direction of these dependency sources? Are you using a particular version of certain sources for the newest version of CEGUI or do I/should I just go download the newest version of the dependencies that I'll be needing?

When I downloaded the CEGUI source I guess I thought the dependency sources came with it, but it's looking like they didn't correct?

Where is the SILLY source? I found http://dir.filewatcher.com/d/Fedora/i38 ... 19401.html but the link at the bottom shows me just a ton of compressed files. Which I'm not understanding.

RickP
Not too shy to talk
Not too shy to talk
Posts: 37
Joined: Sat Mar 13, 2010 03:52

Re: Compiling

Postby RickP » Sat Mar 20, 2010 23:13

I supposed I could use the static dependency libs and compile them into the CEGUI dll that I'm making. I wouldn't need to source for all these. I'll give that a try.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: Compiling

Postby CrazyEddie » Sun Mar 21, 2010 07:14

Hmm, right. I see the issue. Sorry for being dumb, earlier ;)

You could use the static dependency libs, though these are compiled with the /MT and /MTd runtime options, which is likely not what you want.

We don't supply the dependency sources because they're all open source packages and can be easily (so I thought!) obtained elsewhere. This page lists the main dependency options: http://cegui.org.uk/docs/current/compiling.html

SILLLY is a CEGUI side project and is available here: http://www.cegui.org.uk/wiki/index.php/ ... oads_0.1.0

CE

Jamarr
CEGUI MVP
CEGUI MVP
Posts: 812
Joined: Tue Jun 03, 2008 23:59
Location: USA

Re: Compiling

Postby Jamarr » Mon Mar 22, 2010 16:56

As long as he is also building the CEGUI.dll with /MT (/MTd) then there should not be a problem. I assume most people would want to do this, since having to distribute the msvc runtimes in addition to the software is somewhat annoying; otherwise you risk end-users not having a compatible version of the msvc runtimes installed. But yeah, if he wants to use /MD (/MDd) then the static dependency libs are not compatible.

As far as finding and building the sources for CEGUIs dependency libraries, I had more trouble building them than I did finding them. In any case, I haven't personally had any problems with downloading the latest source for each dependecy and linking them with CEGUI; granted that was some time ago.

There could be some potential issues here. Most libraries include the version in their header, so you should be able to determine which version of the dependecy CEGUI is expecting; though there is no guarantee that a dependency will provide version information in their headers. Of course, even if you find the version there is no guarantee that you'll be able to find the source for that version of the dependency. If the API changes, and the old source version is no longer available, your kinda screwed.

How do other open-source libraries handle this? Do they provide the source for the dependencies, or only the libraries needed to link them? A couple of projects off the top of my head, I believe that both Ogre and TinyXml++ provide a source distribution for their dependencies. It seems it would be far less troublesome to distribute the source instead of specialized-precompiled libraries, so clients can build them however they want to fit their projects needs. Assuming of course that there are no licensing issues distributing the dependency sources.
If somebody helps you by replying to your thread, upvote him/her as a thanks! Make sure to include your CEGUI.log and everything you tried when posting! And remember that we are not magicians!

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: Compiling

Postby CrazyEddie » Tue Mar 23, 2010 11:24

Jamarr wrote:How do other open-source libraries handle this? Do they provide the source for the dependencies, or only the libraries needed to link them? A couple of projects off the top of my head, I believe that both Ogre and TinyXml++ provide a source distribution for their dependencies. It seems it would be far less troublesome to distribute the source instead of specialized-precompiled libraries, so clients can build them however they want to fit their projects needs. Assuming of course that there are no licensing issues distributing the dependency sources.


I think there are large numbers of libs do not provide dependencies at all - source or binary. Those that do provide them usually provide binaries for Windows people. There are exceptions, and those mainly consist of libs where dependencies are integrated directly into the code tree (such as what Irrlicht and FreeImage both do with the low level image libs, and what CEGUI can do with TinyXML and GLEW and such).

I don't think Ogre does distribute the source of the dependencies; they provide binaries the same way we do (though not alternate configurations, like we do ;)). The problem with providing source for the dependencies is precisely because people would try building it! A lot of people have enough trouble comprehending some basic principles as it is, so if we threw building dependencies into the mix also there would be no end of people with issues coming from there. Some of those deps also need to be configured or do not include builds for MSVC++ (pcre), so would we then also need to provide those build systems and provide support for the same? Its a whole can of worms I don't want to get involved with - I'm looking for less support work, not more ;)

CE.

RickP
Not too shy to talk
Not too shy to talk
Posts: 37
Joined: Sat Mar 13, 2010 03:52

Re: Compiling

Postby RickP » Tue Mar 23, 2010 12:18

I think the ideal thing, but a lot of work, would be to include all source and then have some sort of GUI configuration program that let's you graphically configure what you want and then builds everything for you. I imagine the building can all be done from command line.

Jamarr
CEGUI MVP
CEGUI MVP
Posts: 812
Joined: Tue Jun 03, 2008 23:59
Location: USA

Re: Compiling

Postby Jamarr » Tue Mar 23, 2010 15:20

New Dependencies for OGRE 1.7 It seems like they are moving away from precompiled dependency distributions, or at least testing the waters ;)

In any case, I can assure you the intent is to reduce support. I think that offering precompiled dlls for Windows is good for noobs, but by not offering source packages you are kind of ostricizing the advanced users - those who will probably contribute more to the project than noobs ever will. Of course they will, like me, go out and find and build the dependencies themselves, but it is some what of a hassle and there is no guarantee that the version you end up downloading will be compatible.

I think that moving the precompiled static libs to use /MT was a move in the right direction: trying to offer a package for advanced users, as they tend to favor (imo) static linking where available; they are also more comfortable working through the configuration and build processes themselves and would rather download a source package to configure themselves.

In this case, I think it is more beneficial to have a source distribution than to distribute precompiled static libs. In addition, it is already difficult for noobs to deal with one set of binaries, much less two; they need fewer options, not more. Thus, I propose there should be a single precompiled dll distribution for windows noobs, and a single source distribution for the rest of us ;)

In regards to PCRE, it is distributed with CMake config files; there is no need to distribute vs projects for it. At least think about it :pint:
If somebody helps you by replying to your thread, upvote him/her as a thanks! Make sure to include your CEGUI.log and everything you tried when posting! And remember that we are not magicians!

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: Compiling

Postby CrazyEddie » Tue Mar 23, 2010 15:37

Ah, I see, I missed that :P Right at the moment I can say that I personally have no intention of following suit ;) As you say, the source for those packages is already out there for people who want (or need) it, and they're free to compile their own versions. Now, having said that, if somebody else wants to take on a responsibility of preparing, testing and supporting source based dependencies for Windows users, then I'll sign up here and now, but it's definitely not something I myself will be doing (I do not wish to increase the time I spend on the Windows platform).

As far as compatibility goes, on the whole the dependencies used are highly stable, although the code will basically always track the latest versions of these libs. CEGUI is primarily developed on Linux - if some dependency package updates and breaks CEGUI, CEGUI gets updated pretty damned quick - then we occasionally have to kludge to still support Windows - this situation would remain regardless of whether the dependency packs were source or binary.

What would be better is if everyone used linux-like systems, this way first, you generally don't have all this bollocks regarding two dozen configurations for everything like we have to endure from Redmond, and second, all those dependencies are, in general, easily obtained and updated from your distro :mrgreen:

CE.

RickP
Not too shy to talk
Not too shy to talk
Posts: 37
Joined: Sat Mar 13, 2010 03:52

Re: Compiling

Postby RickP » Tue Mar 23, 2010 23:35

those who will probably contribute more to the project than noobs ever will


See generally I think the reason you make a library is so people can use it, not so people will contribute to it. So those noobs are really your target audience when you make a library. Isn't the idea to make something that is easy to use? Why would you want to make something that is complex to use? In my 12 years of programming this is the downside to open source. It rarely cares about making things friendly to use and often caters to the advanced users and cares little for the noobs. There are more noobs out there than advanced users. Targeting the noobs is what gets your library out there and popular. The reason you want it popular is because that generally means you are serving the masses. Making a bigger difference than if you just targeted the advanced users. Is MS wasn't so easy to use computers would still be things in the basement that only the advanced geeks use. By making it easier, which comes at a price, it was able to please the masses, and has done more for computers in such a short time than ever though possible. Computers make little difference if 1% of the population use them. They change the world when everyone uses them.

That's my view on it anyway. Either way, I'm one of those "noobs" who doesn't mind getting his feet wet. I feel like I'm right about in the middle I guess. I'm Switzerland!

Anyway, I'll get those libraries linked in and see if that helps.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: Compiling

Postby CrazyEddie » Wed Mar 24, 2010 10:27

I'm going to qualify this post by first saying that I'm not anti-noob or particularly 'anti' anything else. Also, this post is not supposed to be a lament, or be particularly dictatorial, though no doubt it could be interpreted in those ways ;)

In relation to the quote from Jamarr, I think it's important to establish what we consider a “noob” to be – because I feel that, as with most other things, there are various levels of “noob”. It's very important to distinguish between people who are new to CEGUI and people who are new or inexperienced programmers in a more general sense. Obviously at some stage or other pretty much everyone has been a “noob” as far as CEGUI is concerned, this unavoidable and part and parcel of using any library or software of any type. I believe the distinction Jamarr was making was about the more general type of “noob”; the type of person who doesn't have a clue about much of anything, and in that context I agree with Jamarr. Those types of user are unlikely to ever be productive users or contributors to the project.

The original CEGUI was written to fill a need that I had. I thought that the library might be useful to others, and so I made it available as open source. That's pretty much it. I believe this is also the case with a lot of other open source too, people create things for their own needs and decide to share that with others – generally the developers don't “sign up” to spend hours writing documentation, writing tutorials or providing support. Now I'm not saying this is a good situation, in an ideal world all of these open source projects would have the resources of Microsoft; would have thousands of employees with teams writing documentation, teams writing tutorials and teams providing support. Unfortunately most open source originates from small teams or individuals who do not have the resources to provide that level of supporting material – these projects rely on community to assist in those areas (these are some of the 'contributions' Jamarr refers to).

Of course you are correct that nobody sets out to create a system that is complex or otherwise impenetrable. On the plus side, CEGUI does have API documentation and some tutorials. Admittedly these are far from perfect; at times the API reference is especially terse and could be improved with more examples and such. Generally when I work on CEGUI I will work on what interests me and what I think offers the best overall value for my time, usually this turns out to be something other than tutorials and documentation; I'd rather spend the time I contribute to CEGUI working on the code, fixing bugs, integrating new facilities and so on. I don't enjoy the support role, it grinds me down, gives me migraine and generally makes me lose the will to live – the fact that I try to do it anyway sometimes seems to get overlooked and unappreciated, with certain users demanding more, More, MORE!

Generally I think people have the “wrong idea” as to what open source is about. My own opinion is that expecting anything other than the source code is a mistake; that anything that you do get above and beyond the source code should be treated with a certain level of respect and appreciation – this probably comes from me having more affinity to those old school, advanced geeks in the basement than of the 'new wave' of programmers from the 1990s and onwards. I'll avoid getting into a discussion about the merits – or lack of – of Microsoft, and instead just say that generally I do not share your views. I'm not an anti-MS zealot, I think their keyboards and mice are very nice ;)

CE

RickP
Not too shy to talk
Not too shy to talk
Posts: 37
Joined: Sat Mar 13, 2010 03:52

Re: Compiling

Postby RickP » Wed Mar 24, 2010 12:20

Crazy Eddie you are the best! I was very shocked at how much you do help. You post pretty much every day and I think that's amazing and I fully do appreciate you. I know the support role can grind a person down (I do this at work all the time even though I'm a developer) but you are truly good at it.

I understand your view on open source and like you said it's not ideal but it is what it is. One person, or a small group, can only do so much. It's just frustrating sometimes because you see an open source project that is simply amazing and you know it should have more steam behind it, but doesn't for whatever reason. This is how I see CEGUI. This is truly an amazing GUI library and I would just love to see it more mainstream and popular so everyone could see that and use it because that means it would just get better and better!

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: Compiling

Postby CrazyEddie » Wed Mar 24, 2010 14:28

Thanks :)

I agree with regards to what you say about frustration, it would be awesome if there were three or four CrazyEddies - world domination would then surely be within my grasp :twisted:

CE.

Jamarr
CEGUI MVP
CEGUI MVP
Posts: 812
Joined: Tue Jun 03, 2008 23:59
Location: USA

Re: Compiling

Postby Jamarr » Thu Mar 25, 2010 21:49

CE pretty much covered what I was getting at. As he said, when I use the term 'noob' I am referring to those users who have seemingly never programmed before and/or those who do not understand how to use their compiler. You can see these people day in and day out on any open source forum not asking, but demanding answers for help with the simplest of tasks; and without providing any relevant information. They expect things to be handed to them on a silver platter, without having to put in any effort themselves. I attribute the majority of this problem to society and parental neglect, but I digress...

Anyway, I just wanted to point out that you are taking that one portion of a sentence out of context. If you had read the entire post, without first jumping to conclusions, you would see that I am all for making it easier for noobs to access and use the library:
it is already difficult for noobs to deal with one set of binaries, much less two; they need fewer options, not more.


Also, your comparisons between MS and open-source projects is far off base as CE has already eluded too. As well, it does not take the entire population of earth for something to make a difference. Computers and networks have been making huge contributions to human kind long before 1% of the population even had access to a computer; universities where using computers and networks for research long before the PC came around. I'm not trying to offend. I simply state things as I see them, and as I try to base those statements on credible sources when available. For example, just take a look at the threads in this forum, the ogre forum, the wxwidgets forum, the c/c++ newsgroups, fox news, etc...

CE, I started programming in 1996 so I take offense to that! It's those 2000+ coders I tell you! ;)

p.s. yes I did throw fox news in that list...freaking noobs...
If somebody helps you by replying to your thread, upvote him/her as a thanks! Make sure to include your CEGUI.log and everything you tried when posting! And remember that we are not magicians!


Return to “Help”

Who is online

Users browsing this forum: No registered users and 12 guests