前言:我对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))链接到同一目录,但是我不知道如何解决这个问题。有什么建议吗?
答案 0 :(得分:0)
来自cmake manual:
add_executable(<名称> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [source1] [source2 ...])
添加一个称为要从命令调用中列出的源文件构建的可执行目标。 (如果以后使用target_sources()添加源文件,则可以在此处省略源文件。)
因此,要使用两个源文件来编译单个可执行文件,只需使用:
add_executable(target_name source1.c source2.c)