繁体   English   中英

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

[英](CLion/CMake) Why does my c file not belong to any target project when it is saved within the project directory?

前言:我对c和CLion还是很陌生,所以如果我的措辞很错误,请提前道歉。

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

“对“转换”的未定义引用”

我试图解决问题,但我唯一的想法是与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手册

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

添加一个称为要从命令调用中列出的源文件构建的可执行目标。 (如果以后使用target_sources()添加源文件,则可以在此处省略源文件。)

因此,要使用两个源文件来编译单个可执行文件,只需使用:

add_executable(target_name source1.c source2.c)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM