Crystal Space
Welcome, Guest. Please login or register.
October 30, 2014, 02:06:08 pm

Login with username, password and session length
Search:     Advanced search
9011 Posts in 2044 Topics by 8882 Members
Latest Member: Susiesmith5
* Home Help Search Login Register
+  Crystal Space
|-+  Crystal Space Development
| |-+  Support
| | |-+  CEGUI problem
« previous next »
Pages: [1] 2 Print
Author Topic: CEGUI problem  (Read 13602 times)
muffinpeddler
Full Member
***
Posts: 122


View Profile Email
« on: December 19, 2005, 05:18:33 am »

I am trying to use CEGUI in my application, but compiling the app fails to find header files.  I wonder why the test ceguitest app from crystal space compiled fine while my application, which uses many of the same things from the test can't find header files like "CEGUI.h."  I am using the same installation of CEGUI for both.
Am I doing something wrong?  I basically copied the CEGUI stuff from the tests seeing as I've never used CEGUI before. 
Any suggestions?  Thanks.

Here is the first part of the build output:
Code:
...found 37 target(s)...
...updating 3 target(s)...
C++ ./out/linuxx86/optimize/src/puniverse.o
In file included from src/puniverse.cpp:1:
src/pApp.h:5:19: CEGUI.h: No such file or directory
In file included from src/pApp.h:6,
                 from src/puniverse.cpp:1:
/home/max/files/cvs/CS/include/ivaria/icegui.h:27:19: CEGUI.h: No such file or directory
In file included from src/pApp.h:6,
                 from src/puniverse.cpp:1:
/home/max/files/cvs/CS/include/ivaria/icegui.h:49: error: ISO C++ forbids
   declaration of `CEGUI' with no type
/home/max/files/cvs/CS/include/ivaria/icegui.h:49: error: `CEGUI' declared as a
   `virtual' field
/home/max/files/cvs/CS/include/ivaria/icegui.h:49: error: parse error before `

But the test application in CS has the same includes and works fine...
« Last Edit: December 19, 2005, 05:36:02 am by muffinpeddler » Logged
sunshine
Administrator
Sr. Member
*****
Posts: 294


View Profile
« Reply #1 on: December 20, 2005, 04:55:21 am »

You need to tell the build system where CEGUI is installed. In particular, you need to use the correct compiler and linker flags. The test program in CS builds cleanly because the CS configure script has a check for CEGUI which determines this information. If your own project was created with jamtemplate/createproject.sh, then you can probably just copy the CEGUI test from the CS configure script into your own configure.ac file (and re-run your autogen.sh script). You'll also need to add a `CEGUI' to the ExternalLibs line in your project's src/Jamfile.
Logged
muffinpeddler
Full Member
***
Posts: 122


View Profile Email
« Reply #2 on: December 20, 2005, 06:20:37 am »

Thanks it compiles now!
About the libcegui, make installing the 0.4.1 source package with the prefix /usr/local is fine for everything, until you actually try to run the CS application.  I just made symlinks to all the /usr/local/lib/libCEGUI* to /usr/lib/ and it ran fine, but is this a bug in CEGUI or CS?
Logged
sunshine
Administrator
Sr. Member
*****
Posts: 294


View Profile
« Reply #3 on: December 20, 2005, 02:28:13 pm »

Please clarify the problem you experienced. It's not obvious from your description where CEGUI's build system installed it, nor what the precise problem was.
Logged
muffinpeddler
Full Member
***
Posts: 122


View Profile Email
« Reply #4 on: December 20, 2005, 03:36:48 pm »

When building the cegui source package from cegui.org, the default installation installs the libraries to /usr/local/lib/ and that works fine for building and linking, but when you actually try to run say, the ceguitest application, it can't find the libcegui libraries.  I just made symlinks from /usr/local/lib/libcegui* to /usr/lib/ and the application ran fine.
Logged
sunshine
Administrator
Sr. Member
*****
Posts: 294


View Profile
« Reply #5 on: December 20, 2005, 11:25:58 pm »

What error do you get at run-time? Also, what linker flags are used for CEGUI when building your application?
Logged
muffinpeddler
Full Member
***
Posts: 122


View Profile Email
« Reply #6 on: December 21, 2005, 12:11:37 am »

Here is the error before the fix:
Code:
./ceguitest: error while loading shared libraries: libCEGUIBase.so.0: cannot open shared object file: No such file or directory
And this was just with the ceguitest from CS, so flags are in the Jamfile in the apps/tests/ceguitest/ folder (I assume):
Code:
SubDir TOP apps tests ceguitest ;

if $(CEGUI.AVAILABLE) = "yes"
{
Description ceguitest : "CEGUI Test Application" ;
Application ceguitest :
  [ Wildcard *.h *.cpp ] ;
CFlags ceguitest : $(COMPILER.C++FLAGS.EXCEPTIONS.ENABLE) ;
LinkWith ceguitest : crystalspace ;
ExternalLibs ceguitest : CEGUI ;
}
Logged
sunshine
Administrator
Sr. Member
*****
Posts: 294


View Profile
« Reply #7 on: December 21, 2005, 01:52:31 am »

You may need to set your LD_LIBRARY_PATH variable to point at /usr/local/lib.

As for the CEGUI linker flags, I was interested in seeing the actual flags (which will appear in your generated Jamconfig). At any rate, it's most likely that /usr/local/lib isn't searched by default at run-time, which is why you might have to set LD_LIBRARY_PATH.
Logged
muffinpeddler
Full Member
***
Posts: 122


View Profile Email
« Reply #8 on: December 21, 2005, 02:43:03 am »

Here are the flags:
Code:
CEGUI.AVAILABLE ?= "yes" ;
CEGUI.CFLAGS ?= "-I/usr/local/include/CEGUI" ;
CEGUI.LFLAGS ?= "-L/usr/local/lib -lCEGUIBase" ;
Logged
[SOM]Roberto
Jr. Member
**
Posts: 79


View Profile Email
« Reply #9 on: December 22, 2005, 01:16:14 am »

OK I linked CEGUIBase.lib but I cant compile cegui test program. I using 15-Dec-2005 CS version for cvs and I istalled winlibs cs-win32libs-0.99r0_017. I working on mingw compiler with code blocks rc2; integrated mingw.

This is the error log:
http://rafb.net/paste/results/BgjJr137.html
« Last Edit: December 22, 2005, 01:21:10 am by [SOM]Roberto » Logged
sunshine
Administrator
Sr. Member
*****
Posts: 294


View Profile
« Reply #10 on: December 22, 2005, 03:45:46 pm »

Is the build system even linking the CEGUI library into that application?
Logged
[SOM]Roberto
Jr. Member
**
Posts: 79


View Profile Email
« Reply #11 on: December 22, 2005, 04:29:15 pm »

Is the build system even linking the CEGUI library into that application?

http://sourceforge.net/project/showfiles.php?group_id=2997&package_id=149087

-Now, yes of course, I linking gcc's lib: libceguibase.a and
-copy dlls near the execute: ceguibase.dll, xerces-c_2_6.dll, mgwz.dll, libfreetype-6.dll

But, the program making error window:
"Failed to locate CEGUI plugin"
« Last Edit: December 22, 2005, 04:32:32 pm by [SOM]Roberto » Logged
sunshine
Administrator
Sr. Member
*****
Posts: 294


View Profile
« Reply #12 on: December 22, 2005, 07:29:27 pm »

This probably means that CS's CEGUI plugin did not build or did not build successfully.
Logged
[SOM]Roberto
Jr. Member
**
Posts: 79


View Profile Email
« Reply #13 on: December 22, 2005, 08:33:52 pm »

This probably means that CS's CEGUI plugin did not build or did not build successfully.

I builded cegui plugin in CS:
c:\CS\plugins\gui\cegui

But the execute program can't load it.
Logged
sunshine
Administrator
Sr. Member
*****
Posts: 294


View Profile
« Reply #14 on: December 23, 2005, 02:40:45 pm »

Does the .dll for the CS plugin actually exist? Try running CS programs with --verbose=scf to see where SCF is searching for plugins and which ones it finds.
Logged
Pages: [1] 2 Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Page created in 7.253 seconds with 16 queries.