Краткий ответ
Используйте вывод 'pkg-config gtkmm-2.4 --cflags' для включаемых путей и 'pkg-config gtkmm-2.4 --libs' для библиотек для связи.
Длинный ответ
Он сказал, что не может найти gtkmm.h, нет проблем, я просто забыл связать библиотеку.
Сборка программы на C / C ++ выполняется в два отдельных этапа. Сначала исходные файлы компилируются, выводя объектные файлы; а затем объектные файлы связаны друг с другом. Ошибка, которую вы получаете, происходит на этапе компиляции.
В Linux большинство библиотек поставляются с файлами pkgconfig, чтобы другим библиотекам было проще использовать библиотеки. gtkmm также поставляется с собственными файлами pkgconfig.
Вы пытаетесь вручную указать /usr/include/gtkmm-2.4 для пути включения; это не верно. Вместо этого используйте вывод pkgconfig, чтобы выяснить, где находятся заголовочные файлы. Чтобы получить все каталоги включения, необходимые для gtkmm, используйте следующую команду:
pkg-config gtkmm-2.4 --cflags
Для компоновки используйте следующую команду pkgconfig, чтобы получить библиотеки, с которыми вы хотите связать:
pkg-config gtkmm-2.4 --libs
Вы можете проверить это в командной строке, вызвав g ++ напрямую.
g++ myfirstprogram.cpp -o myfirstprogram `pkg-config gtkmm-2.4 --cflags --libs`
Для получения дополнительной информации см. Документацию gtkmm: http://library.gnome.org/devel/gtkmm-tutorial/unstable/sec-basics-simple-example.html.en