gpt4 book ai didi

c++ - 为什么 EXECUTABLE_OUTPUT_PATH 不起作用?

转载 作者:太空狗 更新时间:2023-10-29 21:33:57 25 4
gpt4 key购买 nike

我有这样的文件

.
├── CMakeLists.txt
└── src
├── CMakeLists.txt
└── main.c

这是关于这个文件的内容

$ cat CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
PROJECT (HELLO)
ADD_SUBDIRECTORY(src bin)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/binarydir)

$ cat src/CMakeLists.txt
ADD_EXECUTABLE(hello main.c)

$ cat src/main.c
#include <stdio.h>
int main()
{
printf("Hello World from t1 main().\n");
return 0;
}

然后我用下面的命令构建它

$ mkdir build
$ cd build
$ cmake ..
$ make

这是结果目录结构

然后二进制文件 hello 将在目录 build/bin 中生成,如图所示,但它应该在 build/binarydir 中,因为我有设置 EXECUTABLE_OUTPUT_PATH 的值,不是吗?我错过了什么?

最佳答案

您在设置 EXECUTABLE_OUTPUT_PATH 之前创建可执行目标。将 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/binarydir) 行移动到 ADD_SUBDIRECTORY(src bin) 之前。

关于c++ - 为什么 EXECUTABLE_OUTPUT_PATH 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48972604/

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