2016-03-08 6 views
0

Я пытаюсь скомпилировать программу GTK2, которая использует gtkmm и opencv. Я попробовал это с командной строкой g ++:Исправить файл CMakeLists.txt для gtk, gtkmm и opencv

g++ main.cpp -o bla `pkg-config --cflags --libs gtkmm-2.4 opencv` 

Который выдает те же ошибки, что и выходы ниже.

И я попробовал с CMake и ниже CMakeLists.txt файла:

project (gtk-test) 
cmake_minimum_required (VERSION 2.4) 

find_package (PkgConfig REQUIRED) 
pkg_check_modules (GTK2 REQUIRED gtk+-2.0) 

include_directories (${GTK2_INCLUDE_DIRS}) 
link_directories (${GTK2_LIBRARY_DIRS}) 
add_executable (gtk-test main.c) 
add_definitions (${GTK2_CFLAGS_OTHER}) 
target_link_libraries (gtk-test ${GTK2_LIBRARIES}) 

CMake. & & сделать:

CMake Warning (dev) at CMakeLists.txt:6 (link_directories): 
This command specifies the relative path 

    $GTKMM_LIBRARY_DIRS} 

    as a link directory. 

    Policy CMP0015 is not set: link_directories() treats paths relative to the 
    source dir. Run "cmake --help-policy CMP0015" for policy details. Use the 
    cmake_policy command to set the policy and suppress this warning. 
This warning is for project developers. Use -Wno-dev to suppress it. 

-- Configuring done 
-- Generating done 
-- Build files have been written to: /Users/alefveld/Downloads/gtkcv 
[ 25%] Building CXX object CMakeFiles/bla.dir/MainWindow.cpp.o 
In file included from /Users/alefveld/Downloads/gtkcv/MainWindow.cpp:1: 
In file included from /Users/alefveld/Downloads/gtkcv/MainWindow.hpp:12: 
In file included from /usr/local/include/gtkmm-2.4/gtkmm/window.h:7: 
In file included from /usr/local/include/glibmm-2.4/glibmm.h:87: 
In file included from /usr/local/include/glibmm-2.4/glibmm/thread.h:49: 
In file included from /usr/local/include/glibmm-2.4/glibmm/error.h:23: 
In file included from /usr/local/include/glibmm-2.4/glibmm/exception.h:25: 
/usr/local/include/glibmm-2.4/glibmm/ustring.h:267:13: error: expected ';' at 
     end of declaration list 
    ~ustring() noexcept; 
      ^
      ; 
/usr/local/include/glibmm-2.4/glibmm/ustring.h:881:48: warning: deleted function 
     definitions are a C++11 extension [-Wc++11-extensions] 
    FormatStream(const ustring::FormatStream&) = delete; 
              ^
/usr/local/include/glibmm-2.4/glibmm/ustring.h:882:59: warning: deleted function 
     definitions are a C++11 extension [-Wc++11-extensions] 
    FormatStream& operator=(const ustring::FormatStream&) = delete; 
                 ^
/usr/local/include/glibmm-2.4/glibmm/ustring.h:894:18: error: expected ';' at 
     end of declaration list 
    ~FormatStream() noexcept; 
       ^
       ; 
/usr/local/include/glibmm-2.4/glibmm/ustring.h:1273:45: warning: deleted 

И так далее. Что мне здесь не хватает? Любая помощь будет вечно оценена. Как скомпилировать Gtk/gtkmm и opencv за один раз?

+1

Вы пытались сообщить об ошибке Google? [Здесь] (https://github.com/robotology/yarp/issues/598) говорят, что вам нужен C++ 11. – Tsyvarev

+0

Я googled много раз :-) Однако я не google на ошибках C++ 11. Это кажется полезным, спасибо, я попробую это. – ATv

ответ

0

GTKmm и GTK - это две разные вещи. GTKmm - это привязка C++ для GTK, поэтому GTKmm зависит от файлов GTK.

Для CMake и GTKmm просто ознакомьтесь с официальной страницей wiki на странице using CMake with GTKmm.