Using gtkmm with Eclipse CDT
I'm trying to compile the gtkmm Simple Example using Eclipse CDT, but it's not working for some reason
I'm compiling this on Mandriva Linux and GCC 4.4.3
I get this error, which I think is a linking error :
Building target: Test
Invoking: GCC C++ Linker
g++ -L/usr/include/gtkmm-2.4 -o"Test" ./test.o
./test.o: In function `main':
test.cpp:(.text+0x39): undefined reference to `Gtk::Main::Main(int&, char**&, bool)'
test.cpp:(.text+0x43): undefined reference to `Gtk::Window::Window(Gtk::WindowType)'
test.cpp:(.text+0x4b): undefined reference to `Gtk::Main::run(Gtk::Window&)'
test.cpp:(.text+0x53): undefined reference to `Gtk::Window::~Window()'
test.cpp:(.text+0x5b): undefined reference to `Gtk::Main::~Main()'
test.cpp:(.text+0x82): undefined reference to `Gtk::Main::~Main()'
test.cpp:(.text+0x95): undefined reference to `Gtk::Window::~Window()'
./test.o: In function `global constructors keyed to main':
test.cpp:(.text+0xaf): undefined reference to `Glib::ustring::ustring(char const*)'
test.cpp:(.text+0xbe): undefined reference to `Glib::ustring::~ustring()'
test.cpp:(.text+0xd2): undefined reference to `Glib::ustring::ustring(char const*)'
test.cpp:(.text+0xe1): undefined reference to `Glib::ustring::~ustring()'
test.cpp:(.text+0xf5): undefined reference to `Glib::ustring::ustring(char const*)'
test.cpp:(.text+0x104): undefined reference to `Glib::ustring::~ustring()'
test.cpp:(.text+0x118): undefined reference to `Glib::ustring::ustring(char const*)'
test.cpp:(.text+0x127): undefined reference to `Glib::ustring::~ustring()'
test.cpp:(.text+0x13b): undefined reference to `Glib::ustring::ustring(char const*)'
test.cpp:(.text+0x14a): undefined reference to `Glib::ustring::~u开发者_StackOverflow社区string()'
test.cpp:(.text+0x15e): undefined reference to `Glib::ustring::ustring(char const*)'
test.cpp:(.text+0x16d): undefined reference to `Glib::ustring::~ustring()'
test.cpp:(.text+0x181): undefined reference to `Glib::ustring::ustring(char const*)'
test.cpp:(.text+0x190): undefined reference to `Glib::ustring::~ustring()'
collect2: ld returned 1 exit status
make: *** [Test] Error 1
Sorry for the long error log, but I don't know how to make it shorter
Project Property->C/C++ Build->Settings
GCC C++ Compiler->Miscellaneous, add this string: pkg-config gtkmm-3.0 --cflags --libs
into Other flags.
GCC C++ Linker->Miscellaneous, add this string: pkg-config gtkmm-3.0 --cflags --libs
in Linker flags.
If you are using gtkmm 2.4, just replace "gtkmm-3.0" with "gtkmm-2.4"
Tick the GCC C++ COMPILER VERBOSE (_V) string.
You have to add all the library's listed when you run pkg-config gtkmm-2.4 --cflags --libs
in a terminal to Eclipse. As far as I have found, Eclipse doesn't play nice with pkg-config, so you have to add them manually.
Right click your Project > Properties > C/C++ Build > Settings
Under GCC C++ Compiler, in directories, add each directory listed when you run
pkg-config gtkmm-2.4 --cflags
(just the directories, drop the -I and -pthread)
Under GCC C++ Linker, in Libraries, add everything from
pkg-config --libs
(again, just add the libraries,drop the -l and -pthread)
精彩评论