[英](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.