我是新来的cmake
并且知道这个问题之前已经被问过,但仍然找不到我做错了什么。我有一个带有文件夹的外部库/include
and lib
. The /include
文件夹包含所有标题(.h
)和/lib
文件夹包含所有源(.c
) files.
在我的项目中我有这个CMakeList.txt
file:
cmake_minimum_required(VERSION 3.7)
project(FirstAttempt)
set(CMAKE_CXX_STANDARD 11)
set (EXTRA_LIBS "D:\\libtrading")
include_directories(${EXTRA_LIBS}/include)
link_directories(${EXTRA_LIBS}/include)
set(SOURCE_FILES main.cpp)
add_executable(FirstAttempt ${SOURCE_FILES})
target_link_libraries (FirstAttempt ${EXTRA_LIBS}/lib)
我知道我必须使用target_link_libraries
将库的源文件链接到我的项目,但肯定缺少一些东西,但是什么呢?我仍然收到错误undefined reference to xxxxxx
.
我试图包含在我的项目中的库是https://github.com/libtrading/libtrading.
如您所知,我们需要编译所有源文件。所以我们需要指出 Cmake 知道源文件在哪里/什么。
我认为你应该像这样添加所有源文件
file(GLOB SOURCES_FILES "lib/*.c" main.cpp)
添加所有 .c 文件。
或者,您可以单独添加所有 lib/*.c 文件
file(SOURCES_FILES_LIBS "lib/*.c")
set(SOURCES_FILES main.cpp)
add_executable(FirstAttempt ${SOURCES_FILES_LIBS} ${SOURCES_FILES})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)