问题描述
源代码
#include <stdlib.h>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include <math.h>
#include <ctype.h>
#include <driver.hpp>
#include <decrypt_util.hpp>
#include <encrypt_util.hpp>
#include <util.hpp>
GtkWidget *window1;
GtkWidget *fixed1;
GtkWidget *label1;
GtkWidget *button1;
GtkWidget *decryptbt;
GtkBuilder *builder;
int main(int argc,char *argv[]){
gtk_init(&argc,&argv);
builder = gtk_builder_new_from_file ("Attempt.glade");
//Connects glade file with C++ code
window1 = GTK_WIDGET(gtk_builder_get_object(builder,"window1"));
//Creates pop up window,window is defined as a widget.
g_signal_connect(window1,"destroy",G_CALLBACK(gtk_main_quit),NULL);
//Makes the window x stop the program from running further
gtk_builder_connect_signals(builder,NULL);
//Connects signals from gui to code,on button clicked and GetCommandLineA
fixed1 = GTK_WIDGET(gtk_builder_get_object(builder,"fixed1"));
button1 = GTK_WIDGET(gtk_builder_get_object(builder,"button1"));
decryptbt = GTK_WIDGET(gtk_builder_get_object(builder,"decryptbt"));
label1 = GTK_WIDGET(gtk_builder_get_object(builder,"label1"));
gtk_widget_show(window1);
gtk_main();
return EXIT_SUCCESS;
}
void on_button1_clicked (gtkbutton *b){
gtk_label_set_text (GTK_LABEL(label1),(const gchar* ) "Hello World");
}
Cmakelists.list
cmake_minimum_required(VERSION 3.7...3.18)
if(${CMAKE_VERSION} VERSION_LESS 3.12)
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MInor_VERSION})
endif()
set(CMAKE_CXX_STANDARD 17)
project(ezip VERSION 1.0
DESCRIPTION "AES encyption"
LANGUAGES CXX)
include_directories(include)
set(SOURCES src/driver.cpp src/util.cpp src/decrypt_util.cpp src/encrypt_util.cpp)
set(GUI src/stuff.cpp)
find_package(Boost 1.6 required COMPONENTS filesystem)
find_package (Eigen3 3.3 required NO_MODULE)
find_package(PkgConfig required)
find_package(GTK required gtk+-3.0)
include_directories(${GTK3_INCLUDE_Dirs})
include_directories(${CMAKE_SOURCE_DIR})
add_deFinitions(${GTK3_CFLAGS_OTHER})
add_executable(ezip ${SOURCES})
target_link_libraries(ezip PUBLIC Boost::filesystem)
target_link_libraries (ezip PUBLIC Eigen3::Eigen)
add_executable(GUI1.0 ${GUI})
target_link_libraries(GUI1.0 ${GTK3_LIBRARIES})
我尝试了许多target_link_libraries和find_package的变体,但没有一个起作用。我知道软件包名称是libglib2.0-0。但是除此之外,我还在黑暗中拍摄。任何信息都有帮助。我已经尝试仅使用GLIB2.0和其他变体来进行find_package,并且我有一个用于包位置的终端输出。如果那会有所帮助。我的错误代码是
home/dellgato/ezip/src/stuff.cpp:6:10: Fatal error: gtk/gtk.h: No such file or directory
6 | #include <gtk/gtk.h>
| ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/GUI1.0.dir/build.make:82: CMakeFiles/GUI1.0.dir/src/stuff.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:124: CMakeFiles/GUI1.0.dir/all] Error 2
make: *** [Makefile:103: all] Error 2
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)