2017-08-07 2 views
0

Ich schreibe ein C++ - Programm, um einen Wert zu überwachen und den aktivierten Status des Touchpads und Trackpoints auf meinem Laptop zu ändern. Ich habe alles außer dem Aufruf von XICHangeProperty. Wenn ich laufen zu lassen, wirft esUndefinierter Verweis auf XICHangeProperty

undefined reference to `XIChangeProperty' 

Wenn ich die #include <X11/extensions/XInput.h> von der Quelle zu entfernen, es einen anderen Fehler wirft.

meine Cmake Datei ist wie folgt

cmake_minimum_required(VERSION 2.8.4) 
set(CMAKE_INSTALL_PREFIX "/") 
set(CPACK_PACKAGING_INSTALL_PREFIX "/") 

project(thinkpad_yoga_mode_detection) 

set (PROJECT_VERSION "1.0") 
set (PACKAGE "${PROJECT_NAME}") 
set (VERSION "${PROJECT_VERSION}") 
set (PACKAGE_NAME "${PACKAGE}") 
set (PACKAGE_TARNAME "${PACKAGE}") 
set (PACKAGE_VERSION "${VERSION}") 
set (PACKAGE_STRING "${PACKAGE} ${VERSION}") 

set(CMAKE_CXX_STANDARD 11) 

find_package(X11 REQUIRED) 
link_libraries(${X11_LIBRARIES}) 
include_directories(${X11_INCLUDE_DIR}) 

set(CMAKE_CXX_FLAGS "-O2") 
set(CMAKE_CXX_FLAGS "-Wall") 


set(SOURCE_FILES YogaModeSwitch.cpp) 
add_executable(yoga_mode_switch ${SOURCE_FILES}) 
install(TARGETS yoga_mode_switch DESTINATION usr/bin) 
install(
    FILES yoga_mode_switch_daemon DESTINATION etc/init.d 
    PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ 
       GROUP_EXECUTE GROUP_READ 
       WORLD_EXECUTE WORLD_READ) 

Ich bin nicht sicher, was ich fehle das würde dazu führen, XIChangeProperty als undefiniert zu zeigen.

Die GitHub Repo mit dem Rest des Codes ist hier https://github.com/kfechter/YogaModeSwitch

Antwort

0

Es stellt sich heraus, dass ich in der Cmake Datei eine Linker-Richtlinie fehlt

sobald ich link_libraries ($ {X11_Xinput_LIB}) an die cmake hinzugefügt file, cmake und make fing an zu arbeiten.

Verwandte Themen