简体   繁体   中英

Adding library reference to NewT in CMake CMakeLists.txt

I am trying to make a simple TUI using newt . I have installed the newt-dev package: apt-get install libnewt-dev and I beleive it is installed correctly since if I do build using gcc with following commands, it works just fine:

gcc -o test main.cpp -lnewt

But my simple code does not compile when I try with cmake using new CLion IDE . Here are the source code, CMakeLists.txt and compiler output:

#include <newt.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{

    /* required variables and string */
    int uiRows, uiCols;
    const char pcText[] = "Welcome to Newt and FLOSS !!!";

    /* initialization stuff */
    newtInit();
    newtCls();

    /* determine current terminal window size */
    uiRows = uiCols = 0;
    newtGetScreenSize(&uiCols, &uiRows);

    /* draw standard help and string on root window */
    newtPushHelpLine(NULL);
    newtDrawRootText((uiCols-strlen(pcText))/2, uiRows/2, pcText);

    /* cleanup after getting a keystroke */
    newtWaitForKey();
    newtFinished();

    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.1)
project(TemparatureMonitoring)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_library(newt) #this does nothing!

set(SOURCE_FILES main.cpp)
add_executable(TemparatureMonitoring ${SOURCE_FILES})

Compiler output:

/opt/clion-1.0/bin/cmake/bin/cmake --build /home/saeid/.clion10/system/cmake/generated/9c100db8/9c100db8/Debug --target all -- -j 4
You have called ADD_LIBRARY for library newt without any source files. This typically indicates a problem with your CMakeLists.txt file
-- Configuring done
CMake Error: Cannot determine link language for target "newt".
CMake Error: CMake can not determine linker language for target: newt
-- Generating done
-- Build files have been written to: /home/saeid/.clion10/system/cmake/generated/9c100db8/9c100db8/Debug
make: *** [cmake_check_build_system] Error 1

I think I have to somehow add a reference to newt package, but no idea how! So basically I am looking for a equivalent to -l switch of gcc for CMakeLists.txt

除了我的评论之外,经过一点搜索,我认为您还需要命令“ target_link_libraries” http://www.cmake.org/cmake/help/v3.0/command/target_link_libraries.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM