Все библиотеки и зависимости корректно установлены в моем Linux-окне. я могу скомпилировать свою тестовую программу с libwnck-3.0 в простом макияжем файле:Как интегрировать libwnck-3.0 в autotools makefile.am
LDFLAGS = -lX11 `pkg-config --cflags --libs gtkmm-3.0 libwnck-3.0 `
CPPFLAGS = -g -Wall -Wno-reorder -std=c++11 `pkg-config --cflags gtkmm-3.0 libwnck-3.0`
OUTPUTDIR = bin
# Macro that uses the backslash to extend to multiple lines.
OBJS = \
main.o \
$(NULL)
all:$(OBJS)
$(CC) $(CPPFLAGS) -o$(OUTPUTDIR)/$(APPNAME) $(OBJS) $(LDFLAGS)
main.o:main.cpp
$(CC) -I$(INCLUDE) $(CPPFLAGS) -c main.cpp
...
дело в том, что для компиляции и компоновки libwnck-3,0 мне нужно использовать: pkg-config --cflags -libs libwnck-3.0
компилятор G ++ компилируется и свяжите мою программу без проблем. Но как я могу сделать это с помощью autotools Makefile.am?
здесь образец main.cpp:
#define WNCK_I_KNOW_THIS_IS_UNSTABLE 1
#include <libwnck/libwnck.h>
#include <gtkmm.h>
int main(int argc, char *argv[])
{
gdk_init (&argc, &argv);
//check if libwnck works
WnckScreen* wnckscreen = wnck_screen_get_default();
Gtk::Main kit(argc, argv);
Gtk::Window mainWindow;
Gtk::Button button("Click here");
mainWindow.set_title("GTKmm Demo");
mainWindow.set_border_width(4);
mainWindow.set_default_size(200, 50);
mainWindow.add(button);
button.show();
Gtk::Main::run(mainWindow);
return 0;
}
и здесь Automake тест Makefile.am:
bin_PROGRAMS = testprogram
testprogram_SOURCES = main.cpp
# that is for gtkmm
testprogram_CPPFLAGS = $(GTKMM_CFLAGS)
# the include for libwnck-3.0
testprogram_CPPFLAGS += -I/usr/include/libwnck-3.0
testprogram_CPPFLAGS = $(GTKMM_CFLAGS)
# Linker flags
testprogram_LDFLAGS =`pkg-config --cflags --libs gtkmm-3.0 libwnck-3.0`
после выполнения autogen.sh, ./configure и сделать, он компилирует gtkmm но я получаю сообщение об ошибке: undefine ссылка на wnck_screen_get_default() Компилятор не может найти пакет libwnck-3.0. ; О (
Я пытаюсь много вариаций и тратить дни на Google без успеха
Спасибо заранее за любую помощь
Да, PKG_CHECK_MODULES решает проблему. Благодаря! ; o) – yoo
Будьте осторожны с PKG_CHECK_MODULES, хотя использование его неправильно затруднит пользователям перекрестную компиляцию вашей программы или библиотеки (т. е. компиляцию и привязку к версиям зависимостей, отличных от тех, которые были установлены диспетчером вашей ОС) – Gunee