【问题标题】:Cmake import -lpthread and othersCmake 导入 -lpthread 等
【发布时间】:2016-08-09 16:16:37
【问题描述】:

也许这是一个愚蠢的问题,但我有一个需要 -lmysqlcppconn -lreadline 和 -lpthread 的程序。

我正在使用 cmake 生成我解决使用的 makefile:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -lmysqlcppconn -lreadline -lpthread")
...(other command most likely irrelevant)

add_executable(name ${SOURCES} ${CMAKE_CXX_FLAG})

但我在执行 makefile 时收到以下警告:

clang: warning: -lmysqlcppconn: 'linker' input unused
clang: warning: -lreadline: 'linker' input unused
clang: warning: -lpthread: 'linker' input unused

有更好的方法吗?

【问题讨论】:

    标签: c++ makefile cmake c++14 clang++


    【解决方案1】:

    CMAKE_CXX_FLAGS 用于编译器标志(使用 CMake 生成的 make 文件编译和链接是单独的步骤)。要链接,您需要类似

    target_link_libraries(name mysqlcppconn)
    target_link_libraries(name readline)
    target_link_libraries(name pthread)
    

    对于线程库,更好的方法是遵循this answer 中解释的过程

    【讨论】:

    • CMakeLists.txt:15 (target_link_libraries) 处的 CMake 错误:无法为该项目未构建的目标“eyeTyou”指定链接库。我之前尝试过,但我不知道要链接这个库
    • 对不起,我的错误我没想到我需要在 add_executable(...) 之后调用 target_link_libraries(...)
    • 对我不起作用。在 add_executable 之后甚至没有调用它。
    猜你喜欢
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多