gpt4 book ai didi

cmake找不到依赖库

转载 作者:行者123 更新时间:2023-12-05 04:13:55 25 4
gpt4 key购买 nike

我有一个依赖记录器库的演示项目,相关文件的文件结构如下:

.
├── FancyLogger
│   ├── CMakeLists.txt
│   ├── FancyLogger.cpp
│   ├── FancyLogger.h
│   ├── bin
│   │   └── libFancyLogger.a
└── HelloClion
├── CMakeLists.txt
├── helloclion.cpp

我在 ./FancyLogger/bin 目录中构建了一个名为 libFancyLogger.a 的静态库。

我的项目HelloClion的CMakeFiles如下:cmake_minimum_required(版本 3.3)项目(HelloClion)

设置(CMAKE_CXX_FLAGS“${CMAKE_CXX_FLAGS}-std=c++11”)

get_filename_component(CODE_ROOT ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)

set(SOURCE_FILES helloclion.cpp)

add_executable(HelloClion ${SOURCE_FILES})
include_directories(${CODE_ROOT}/FancyLogger)
link_directories(${CODE_ROOT}/FancyLogger/bin)
target_link_libraries(HelloClion FancyLogger)

但是链接器提示找不到-lFancyLogger 的库,我不知道如何解决这个问题,请帮忙。

最佳答案

我好像找到原因了。 ;)

在 cmake 文档中:https://cmake.org/cmake/help/v3.0/command/link_directories.html

link_directories(directory1 directory2 ...)

Specify the paths in which the linker should search for libraries. The command will apply only to targets created after it is called.

文档说,该命令仅适用于调用后创建的目标。所以我只需要移动link_directories(${CODE_ROOT}/FancyLogger/bin)add_executable(HelloClion ${SOURCE_FILES}) 前面的某个位置命令。

问题解决了!

关于cmake找不到依赖库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36097262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com