gpt4 book ai didi

c - (CLion/CMake) 为什么我的 c 文件保存在项目目录中时不属于任何目标项目?

转载 作者:太空宇宙 更新时间:2023-11-04 04:15:32 28 4
gpt4 key购买 nike

前言:我是 c 和 CLion 的新手,如果我的措辞非常错误,请提前致歉。

基本上,我的作业涉及两个 c 文件(一个“主文件”,一个执行英制和公制单位之间的转换)。主 c 文件只是 #include-s 转换文件,在转换文件中执行一个函数,并将结果值打印给用户。很简单,但每次尝试运行它时我都会收到一条消息:

“对‘转换’的 undefined reference ”

我已尝试解决问题,我唯一的想法与 conversion.c 顶部的横幅有关,上面写着“此文件不属于任何项目目标,代码洞察功能可能无法正常工作”。我不明白为什么会收到此消息,因为 conversion.c 和 main.c 都在主项目目录中,并且此设置在我之前的任务中运行得非常好。

我已经在线搜索了解决方案,唯一似乎有意义的是更新我的 CMakeLists.txt 文件以包含 add_executable(project conversion.c)。这是我的 CMakeLists.txt 文件在添加此行之前的样子:

cmake_minimum_required(VERSION 3.12)
project(project C)

set(CMAKE_C_STANDARD 11)

add_executable(project main.c)

但是,当我添加它时,出现错误:

CMake Error at CMakeLists.txt:7 (add_executable):
add_executable cannot create target "directory" because another
target with the same name already exists. The existing target is an
executable created in source directory
"/home/john_s/CLionProjects/project". See documentation for
policy CMP0002 for more details.

大概是因为我的前一行 (add_executable(project main.c)) 链接到同一个目录,但我不知道如何解决这个问题。有什么建议吗?

最佳答案

来自 cmake manual :

add_executable(< name> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [source1] [source2 ...])

Adds an executable target called to be built from the source files listed in the command invocation. (The source files can be omitted here if they are added later using target_sources().)

因此,要使用两个源文件组合一个可执行文件,您只需使用:

add_executable(target_name source1.c source2.c)

关于c - (CLion/CMake) 为什么我的 c 文件保存在项目目录中时不属于任何目标项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52825842/

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