2014-11-08 396 views
24

我一直在通过CLion更改构建目录的问题。我试过了: set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin")但它似乎没有改变,并保持不变(/home/adil/.clion10/system/cmake/generated/c05c962b/c05c962b/Debug/Project)。
我也尝试过指定here的解决方法,但这似乎也不起作用。CLion - 更改默认的构建目录

有没有人有这个问题的解决方案?

+0

也有这个问题与构建CL-138.2344.17在Mac上。 – 2014-11-11 19:19:27

+1

我也有这个问题,但是没有解决方案可以接受。更改CMakeLists.txt是一个愚蠢的想法,因为这是一个版本化的文件。像构建目录这样的每用户配置不应该进入原始资源并返回上游。 – srking 2015-04-18 21:28:52

+0

@srking使用CMake环境变量设置每个用户调用cmake时,例如:'cmake -DVARIABLE = value' – wiped 2015-07-08 08:56:13

回答

36

您需要的路径,你的项目驻留在当前目录中的前缀您bin您可以使用${CMAKE_CURRENT_SOURCE_DIR}

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

一定要。在您的CMakeLists.txt文件中将相关的add_executable指令添加到之前。

+4

或'set(CMAKE_LIBRARY_OUTPUT_DIRECTORY “$ {CMAKE_CURRENT_SOURCE_DIR}/lib”)'在库的情况下 – 2015-09-29 19:44:53

3

您可以使用set_target_properties

set_target_properties(YOUR_PROJECT PROPERTIES RUNTIME_OUTPUT_DIRECTORY "YOUR_BUILD_DIRECTORY") 
4

擦拭的答案是正确的,只是我必须补充一点,你必须把该set指令的add_executable指令之前,并在源文件为add_executable定义的,如果你没有在做set指令之前这样,输出将是相同的,不会发生错误。

+1

正是......不能得到他们为什么低估你......你救了我的一天!谢谢 – NikosKeyz 2016-02-18 11:34:30

+1

这是downvoted,因为它显然是对另一个答案的评论。这应该添加在那里,而不是作为单独的答案。 – Killah 2016-03-23 09:48:32

+0

我刚刚将Mrdev的资格添加到@ wiped的答案中。 – 2016-09-28 17:01:07

2

转到设置 - > CMake并指定相对或绝对传递,您希望将构建文件存储在“构建输出路径”字段中。例如./bin将输出在YourProject /斌/调试/ yourExeFile.exe构建文件

enter image description here