簡體   English   中英

無法理解此 CMakeLists.txt 文件

[英]Trouble understanding this CMakeLists.txt file

我對 C++/CMake 完全陌生,從我讀過的所有教程中,頂級 CMakeLists.txt 文件中應該有一個add_executable()行。 但是,在我正在進行的這個項目中,沒有一個:

cmake_minimum_required (VERSION 2.8.11)
set(CMAKE_CXX_STANDARD 17)
set(VERSION dev)

find_package(PkgConfig REQUIRED)
include_directories(SYSTEM $ENV{HOME}/usr/local/include)

project(engine)
add_subdirectory(common)

add_subdirectory(matching)
add_subdirectory(matching_test)
add_subdirectory(matching_tcp_client)
add_subdirectory(matching_tcp_service)
add_subdirectory(md_tcp_service)

add_subdirectory(matching_zmq_service)

add_subdirectory(net)

add_subdirectory(proxy_ws)
add_subdirectory(proxy_md_ws)
add_subdirectory(zmq_proxy)

add_subdirectory(test_tcp_matching_client)
add_subdirectory(test_tcp_matching_server)
add_subdirectory(test_md_tcp_server)

add_subdirectory(test_zmq_matching_server)
add_subdirectory(xpubxsub)

add_subdirectory(md)

我有幾個問題:

  • 如果沒有可執行文件,我該如何運行程序?
  • 我怎么知道這個程序的入口點在哪里? 我嘗試在整個項目中搜索main() function 但似乎找不到。

頂層 CMakeLists.txt 文件中應該有一個 add_executable() 行

這是一個錯誤的假設。 add_executable根本不是強制性的。 例如,僅生成庫的項目將具有add_library並且沒有add_executable 此外,這個 function 可以在子目錄中,不需要放在頂層CMakeLists.txt中。

在您的示例中,以文件夾名稱作為參數的add_subdirectory丟失了。 這些文件夾應該包含一個CMakeLists.txt文件。 您應該查看它們以獲取add_executable命令。 可能有幾個:一個項目可以產生多個可執行文件。 一個常見的用例是一個生成一個主要可執行文件和幾個測試可執行文件的項目。

只有可執行文件需要有一個main() function 並且只有一個。 如果您的項目不產生任何可執行文件,則無需定義main() function。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM