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