2016-03-30 4 views
1

Я пытаюсь скомпилировать простой пример из книги Gtkmm. Код, который я использую в simple.cc файлеGTKmm Простой пример компиляции ошибки

#include <gtkmm.h> 
int main(int argc, char *argv[]) 
{ 
auto app = 
Gtk::Application::create(argc, argv, 
    "org.gtkmm.examples.base"); 

Gtk::Window window; 
window.set_default_size(200, 200); 

return app->run(window); 
} 

, и я пытаюсь скомпилировать его из командной строки следующим способом

g++ -o simple.o simple.cc `pkg-config gtkmm-3.0 --cflags --libs` 

, из которого я получаю следующие ошибки:

simple.cc: In function ‘int main(int, char**)’: 
simple.cc:5:8: error: ‘app’ does not name a type 
auto app = 
    ^
simple.cc:12:10: error: ‘app’ was not declared in this scope 
return app->run(window); 
    ^

Я использую Linux Mint 17.3 и установлен в gtkmm 3.10.1.

+1

Попробуйте добавить '-std = C++ 11' –

+0

@ marco-a Большое вам спасибо, что решили мою проблему. – Pajke

+0

Добро пожаловать. Я отвечу на этот вопрос. –

ответ

1

Вам необходимо включить C++ 11 (или выше), чтобы использовать auto и введите вывод.

Добавить

-std=c++11 

в командную строку компиляции.

1

Если вы не хотите использовать C++ 11, вы можете полностью указать тип приложения.

Glib::RefPtr<Gtk::Application> app = 
    Gtk::Application::create(argc, argv, "org.gtkmm.examples.base"); 
Смежные вопросы