簡體   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