Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - jonnection

#1
Hello

I want to report I solved the problem.

I found a program called Dependency Walker

It is a fantastic program that shows in great detail what DLL's will be called by the program and how DLL's depend on each other.

https://dependencywalker.com/

Using this program I found out that I got burned (yet again) by the good old PATH variable in Windoze. The TGUI dll was calling a SFML dll that was in an earlier entry in the PATH. And that .dll happened to be a DW2 exception handler version. The error however, was pointing to libstdc++-6.dll BECAUSE the SFML dll was looking for the DW2 personality flag in the SJLJ libstdc++-6. Without dependency walker I probably would still be wondering whats wrong.

Fixed by putting the path to the SFML SJLJ directory before the path to the SFML DW2 directory ( I need both).
#2
Hey Texus

I can't use the default SJLJ libs because I'm collaborating with another project that uses DW2 MinGW.

So I compiled my own by using CMake on windows. No problem there.

But when I try to link the libs in the example TGUI login program, I get

  tgui::EditBox::Ptr editBoxUsername = gui.get("Username");


Quote"||=== Build: Debug in tgui_test (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `main':|
C:\dev\TGUI-0.6\examples\tgui_test\main.cpp|98|undefined reference to `__imp___ZNK4tgui3Gui3getERKN2sf6StringE'|
C:\dev\TGUI-0.6\examples\tgui_test\main.cpp|99|undefined reference to `__imp___ZNK4tgui3Gui3getERKN2sf6StringE'|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
"

Now, I understand that __imp__ is something to do with .dll's.

But I thought I am already supplying everything needed :

-ltgui-d -lsfml-graphics-d -lsfml-window-d -lsfml-system-d -lwsock32 -lwinmm -lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt

I have looked with nm into the original libtgui-d.a and tgui-d.dll and the name mangling looks identical to the libs I have compiled.

Do you have any suggestions where I am going wrong ?

Thanks ! This static/dynamic stuff is so confusing.
#3
Happily compiling and working in Code::Blocks. It works well.

but...

Any idea why graphics for buttons are broken like this ?


photo host
#4
I simply copied the missing libtgui into /usr/local/lib

a.out works now, although login entry boxes look broken

I changed the project to generate a console window, apparently missing font and background picture are causing some problems.

I will investigate further.
#5
... which is rather interesting, I do not know where I might have made a mistake with the installation
#6
./a.out: error while loading shared libraries: libtgui.so.0.6.4: cannot open shared object file: No such file or directory
#7
Hi

Just tried to install and get TGUI working. I get a black screen no matter what I try.

What I've done:

- I have a working installation of Code::Blocks + SFML 2.1 (I use them daily) on Xubuntu (12.04)
- I downloaded TGUI 0.6 source from tgui.eu
- I ran cmake . , no problems
- I ran sudo make install -j6 ... again no problems.

I added -ltgui before the SFML libs, starting from a working example SFML project
I added linker search dir to TGUI/lib and compiler search to TGUI/include in project options.

I copy-pasted the example "login" screen source into the main.cpp of the project.

I get a black "TGUI Window" screen (so SFML is working) but no TGUI elements at all are showing up.

I have followed the install instructions fully.

TGUI form builder works though.

I am a bit at loss where to look for the problem. Any help would be appreciated.