cmake 有没有一种方法可以在CLion中更改路径来保存C/C++程序的链接器的输出?

ndh0cuux  于 2023-08-05  发布在  C/C++
关注(0)|答案(1)|浏览(176)

所以,我从Clion开始。我有一个项目,我设法将.cpp.h文件存储在工作目录下的一个文件夹中,这个文件夹叫做src。但是,我无法在一个单独的文件夹中获取链接器生成的输出(可执行文件),比如说工作目录下的bin
作为参考,我正在寻求的项目的文件结构是:

  • 工作目录
  • 制造-构建-调试
  • CMakeLists.txt
  • SRC
  • example.cpp
  • example.h
  • example(example.out
    平台规格:

1.操作系统:macOS 13.4.1

  1. CLion版本:2023.1.4

CMakeLists.txt:

cmake_minimum_required(VERSION 3.25)
project(Password_Manager_CPP)

set(CMAKE_C_STANDARD 11)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)

include_directories(.)

add_executable(Password_Manager_CPP
        src/PasswordManager.cpp src/PasswordDriver.cpp src/PasswordManager.h)

字符串
例如,如果你有一个文件example.cpp,你使用命令编译它:g++ example.cpp -o example。我希望UNIX Exec文件example存储在bin文件夹中。
我在互联网上尝试了一些潜在的解决方案。我看了YouTube,Google,论坛,甚至StackOverflow。然而,我找不到一个满足我需要的解决方案。

ulydmbyx

ulydmbyx1#

好的,在浏览了很多不同的文档和论坛之后。我找到了一个适合我的方法。
第一个月

set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin")

字符串
CMakeLists.txt中使用此函数可以将链接器的输出放入所需的文件夹中。
有用的资源:

你也可以使用下面写的代码。

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")


这里需要注意的是,路径在一个引号内,这是我以前没有做的。
我建议后者,因为在我对CMake的理解中,后一个代码块中使用的变量取代了前一个。

相关问题