Page 1 of 1

SFML Linking Problem

Posted: Tue Apr 17, 2012 6:34 pm
by Jalfor
I'm having an issue with linking SFML. The compiler obviously can work out where to find the SFML files, but linking is failing. I know how to do what I want to do right from the terminal, the command would be (assuming there was just one .cpp file and I only wanted to link to sfml-system) it would be:

Code: Select all

g++ -o appName main.cpp -lsfml-system
So, I thought I would just put

Code: Select all

-lsfml-system
and

Code: Select all

-lsfml-graphics
and so on into my linker options, but that doesn't appear to be working.

I don't think it matters, but the post at the top by the big scary mods says to put your system and stuff in your post, so here it is:

OS: Debian GNU/Linux
Compiler: GCC (g++)
Codelite: Compiled myself from svn repos because the Debian package is out of date

Thanks for any help

Re: SFML Linking Problem

Posted: Tue Apr 17, 2012 8:28 pm
by Jarod42
in linker options,
add in Librairies:

Code: Select all

sfml-system;sfml-graphics

Re: SFML Linking Problem

Posted: Wed Apr 18, 2012 3:08 am
by Jalfor
Still no success. I assume the way you suggested is so they would link in the right order? Anyway, to eliminate that possibility, I only linked to sfml-system but still no success.

Re: SFML Linking Problem

Posted: Wed Apr 18, 2012 5:25 am
by Jalfor
Okay, I know EXACTLY what I need to do now. The output is:

Code: Select all

----------Build Started--------
/bin/sh -c '"make"  -j 2 -f "SFML_Executable_wsp.mk"'
----------Building project:[ SFML_Executable - Release ]----------
make[1]: Entering directory `/home/<me>/Documents/C++ Applications/SFML_Executable/SFML_Executable'
g++ -o ./Release/SFML_Executable @"/home/<me>/Documents/C++ Applications/SFML_Executable/SFML_Executable/SFML_Executable.txt" -L/usr/var/lib  -L.   
./Release/main.o: In function `main':
main.cpp:(.text.startup+0xa): undefined reference to `sf::Clock::Clock()'
main.cpp:(.text.startup+0x30): undefined reference to `sf::Sleep(float)'
main.cpp:(.text.startup+0x38): undefined reference to `sf::Clock::GetElapsedTime() const'
main.cpp:(.text.startup+0x4d): undefined reference to `sf::Clock::GetElapsedTime() const'
collect2: ld returned 1 exit status
make[1]: *** [Release/SFML_Executable] Error 1
make[1]: Leaving directory `/home/<me>/Documents/C++ Applications/SFML_Executable/SFML_Executable'
make: *** [All] Error 2
----------Build Ended----------
4 errors, 0 warnings
What I need to do to get it working, is fix this line:

Code: Select all

g++ -o ./Release/SFML_Executable @"/home/<me>/Documents/C++ Applications/SFML_Executable/SFML_Executable/SFML_Executable.txt" -L/usr/var/lib  -L 
I want to get rid of the -L at the end and replaces it with -lsfml-system. The command I want it to run is this:

Code: Select all

g++ -o ./Release/SFML_Executable @"/home/<me>/Documents/C++ Applications/SFML_Executable/SFML_Executable/SFML_Executable.txt" -L/usr/var/lib  -lsfml-system 
I've tested it in the terminal and it works. Now, could someone tell me how to do this in Codelite?

Thanks

Re: SFML Linking Problem

Posted: Wed Apr 18, 2012 8:05 am
by Jalfor
I found the answer. For anyone else that finds this problem, just remember that you have to right click on the project and open up the settings, not use the settings from the settings tab (Why is this?).

Anyway, all fixed now, and while I'm here, I'd just like to say, that this is a wonderful IDE, it has lots of customizability, a nice interface, great autocompletion, and just really nice to use.

Thanks

Re: SFML Linking Problem

Posted: Wed Apr 18, 2012 8:33 am
by eranif
Jalfor wrote:I found the answer. For anyone else that finds this problem, just remember that you have to right click on the project and open up the settings, not use the settings from the settings tab (Why is this?).
Since the settings belong to the workspace / project. This is why I would expect it to be under the 'Workspace' menu (which it does exists) or from the context menu of the project (which also exists)

Eran

Re: SFML Linking Problem

Posted: Wed Apr 18, 2012 2:49 pm
by Jalfor
Oh yes, I see. Thanks