Неопределенные ссылки при включении GLIB в clion с использованием cmake - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь написать сервис уведомлений для gnome, но cmake продолжает выводить неопределенные ссылочные ошибки при сборке. Я использую библиотеки clion IDE и glib2.0 и работаю на рабочей станции Fedora 30.

То, что я пробовал до сих пор, - это поиск множества потоков переполнения стека и поиск в течение нескольких часов.

Мой CMakeLists.txt файл, скопированный из другого потока StackOverflow, находится здесь:

cmake_minimum_required(VERSION 3.14)
project(gnome_notification C)

set(CMAKE_C_STANDARD 99)

include(FindPkgConfig)
pkg_check_modules(GLIB glib-2.0 REQUIRED)
include_directories(${GLIB_INCLUDE_DIRS})

set(SOURCE_FILES main.c)

add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} ${GLIB_LIBRARIES})

Мой файл main.c находится здесь:

#include <stdio.h>
#include <gio/gio.h>
int main() {
    GApplication* application = g_application_new ("Test", G_APPLICATION_FLAGS_NONE);
    GNotification* notification = g_notification_new("Test Title");
    g_notification_set_body(notification, "Test body");
    g_notification_set_priority(notification, G_NOTIFICATION_PRIORITY_NORMAL);
    g_application_send_notification(application, "Test Id", notification);
    return 0;
}

Сборка выдает неопределенную ошибку ссылки:

/home/xgao/bin/Clion/bin/cmake/linux/bin/cmake --build /home/xgao/Desktop/gnome_notification/cmake-build-debug --target gnome_notification -- -j 4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xgao/Desktop/gnome_notification/cmake-build-debug
[ 50%] Linking C executable gnome_notification
/usr/bin/ld: CMakeFiles/gnome_notification.dir/main.c.o: in function `main':
/home/xgao/Desktop/gnome_notification/main.c:4: undefined reference to `g_application_new'
/usr/bin/ld: /home/xgao/Desktop/gnome_notification/main.c:5: undefined reference to `g_notification_new'
/usr/bin/ld: /home/xgao/Desktop/gnome_notification/main.c:6: undefined reference to `g_notification_set_body'
/usr/bin/ld: /home/xgao/Desktop/gnome_notification/main.c:7: undefined reference to `g_notification_set_priority'
/usr/bin/ld: /home/xgao/Desktop/gnome_notification/main.c:8: undefined reference to `g_application_send_notification'
collect2: error: ld returned 1 exit status
gmake[3]: *** [CMakeFiles/gnome_notification.dir/build.make:84: gnome_notification] Error 1
gmake[2]: *** [CMakeFiles/Makefile2:73: CMakeFiles/gnome_notification.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:85: CMakeFiles/gnome_notification.dir/rule] Error 2
gmake: *** [Makefile:118: gnome_notification] Error 2
...