【发布时间】:2017-06-29 09:41:28
【问题描述】:
我有一个包含多个文件的代码,它使用 GSL 库。当我通过终端使用命令编译代码时
g++ main.cpp -lm -lgsl -lgslcblas -o Exec
这会编译并给出正确的输出并且没有错误。 但是,当我尝试在 CLion 中构建代码时,出现错误
undefined reference to `gsl_rng_uniform'
我已经通过 CMakeLists.txt 链接了我的代码中的各种 .cpp 文件,但我认为,我必须使用类似于标志的东西才能链接到 GSL。 我的 CMakeLists.txt 文件目前如下(源文件中只包含 .cpp 文件,不包含 .h 文件):
cmake_minimum_required(VERSION 3.7)
project(Unitsv1)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp
transition.cpp
random.cpp)
add_executable(Unitsv1 ${SOURCE_FILES})
我对 C++ 很陌生,似乎无法在网上找到任何答案。 谢谢
【问题讨论】:
-
将此命令附加到您的 CMakeLists.txt target_link_libraries(Unitsv1 gsl)
-
必须确保它也在搜索路径中。 cmake.org/cmake/help/v3.0/command/link_directories.html