freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

cmake中文手冊(cè)-文庫吧

2025-06-10 06:16 本頁面


【正文】 set_tests_properties (TutorialComp25 PROPERTIES PASS_REGULAR_EXPRESSION 25 is 5) 它是否能處理是負(fù)數(shù)作為輸入的情況 add_test (TutorialNegative Tutorial 25) set_tests_properties (TutorialNegative PROPERTIES PASS_REGULAR_EXPRESSION 25 is 0) 它是否可以處理較小的數(shù)字。 add_test (TutorialSmall Tutorial ) set_tests_properties (TutorialSmall PROPERTIES PASS_REGULAR_EXPRESSION is ) 用法信息是否可用? add_test (TutorialUsage Tutorial) set_tests_properties (TutorialUsage PROPERTIES PASS_REGULAR_EXPRESSION Usage:.*number)  第一個(gè)測(cè)試用例僅僅用來驗(yàn)證程序可以運(yùn)行,沒有出現(xiàn)段錯(cuò)誤或其他的崩潰,并且返回值必須是0。這是CTest所做測(cè)試的基本格式。余下的幾個(gè)測(cè)試都是用PASS_REGULAR_EXPRESSION 測(cè)試屬性來驗(yàn)證測(cè)試代碼的輸出是否包含有特定的字符串。在本例中,測(cè)試樣例用來驗(yàn)證計(jì)算得出的平方根與預(yù)定值一樣;當(dāng)指定錯(cuò)誤的輸入數(shù)據(jù)時(shí),要打印用法信息。如果你想要添加許多測(cè)試不同輸入值的樣例,你應(yīng)該考慮創(chuàng)建如下所示的宏:+ View Code?12345678定義一個(gè)宏來簡化添加測(cè)試的過程,然后使用它 macro (do_test arg result) add_test (TutorialComp${arg} Tutorial ${arg}) set_tests_properties (TutorialComp${arg} PROPERTIES PASS_REGULAR_EXPRESSION ${result}) endmacro (do_test)BR 做一系列基于結(jié)果的測(cè)試 do_test (25 25 is 5) do_test (25 25 is 0)  對(duì)于每個(gè)do_test宏調(diào)用,都會(huì)向工程中添加一個(gè)新的測(cè)試用例;宏參數(shù)是測(cè)試名、函數(shù)的輸入以及期望結(jié)果。增加系統(tǒng)內(nèi)省(步驟4)  下一步,讓我們考慮向我們的工程中引入一些依賴于目標(biāo)平臺(tái)上可能不具備的特性的代碼。在本例中,我們會(huì)增加一些依賴于目標(biāo)平臺(tái)是否有l(wèi)og或exp函數(shù)的代碼。當(dāng)然,幾乎每個(gè)平臺(tái)都有這些函數(shù);但是對(duì)于tutorial工程,我們假設(shè)它們并非如此普遍。如果該平臺(tái)有l(wèi)og函數(shù),那么我們會(huì)在mysqrt函數(shù)中使用它去計(jì)算平方根。:+ View Code?12 該系統(tǒng)提供log和exp函數(shù)嗎?BRinclude () check_function_exists (log HAVE_LOG)BRcheck_function_exists (exp HAVE_EXP)  下一步,如果CMake在對(duì)應(yīng)平臺(tái)上找到了它們,;如下:// 該平臺(tái)提供exp和log函數(shù)嗎?cmakedefine HAVE_LOGcmakedefine HAVE_EXP  ,這一點(diǎn)很重要。最后,在mysqrt函數(shù)中,如果log和exp在當(dāng)前系統(tǒng)上可用的話,我們可以提供一個(gè)基于它們的可選的實(shí)現(xiàn):?123// 如果我們有l(wèi)og和exp兩個(gè)函數(shù),那么使用它們BRif defined (HAVE_LOG) amp。amp。 defined (HAVE_EXP) result = exp(log(x)*)。 else // 否則使用替代方法添加一個(gè)生成文件以及生成器(步驟5)  在本節(jié),我們會(huì)展示你應(yīng)該怎樣向一個(gè)應(yīng)用程序的構(gòu)建過程中添加一個(gè)生成的源文件。在本范例中,我們會(huì)創(chuàng)建一個(gè)預(yù)先計(jì)算出的平方根表作為構(gòu)建過程的一部分。MathFunctions子路徑下。?12345678910111213141516171819202122232425262728293031323334// 一個(gè)簡單的用于構(gòu)建平方根表的程序 include include BRinclude int main (int argc, char *argv[]) { int i。 double result。 // 確保有足夠多的參數(shù) if (argc 2) { return 1。 } // 打開輸出文件 FILE *fout = fopen(argv[1],w)。 if (!fout) { return 1。 } // 創(chuàng)建一個(gè)帶有平方根表的源文件BR fprintf(fout,double sqrtTable[] = {\n)。 for (i = 0。 i 10。 ++i) { result = sqrt(static_castdouble(i))。 fprintf(fout,%g,\n,result)。 } // 該表以0結(jié)尾 fprintf(fout,0}。\n)。 fclose(fout)。 return 0。 }  注意到這個(gè)表是由合法的C++代碼生成的,并且被寫入的輸出文件的名字是作為一個(gè)參數(shù)輸入的。下一步是將合適的命令添加到MathFunction的CMakeLists文件中,來構(gòu)建MakeTable可執(zhí)行文件,然后運(yùn)行它,作為構(gòu)建過程的一部分。完成這幾步,需要少數(shù)的幾個(gè)命令,如下所示:?123456789101112 首先,我們添加生成該表的可執(zhí)行文件BRadd_executable(MakeTable ) 然后添加該命令來生成源文件 add_custom_mand ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ COMMAND MakeTable ${CMAKE_CURRENT_BINARY_DIR}/ DEPENDS MakeTable ) 為包含文件,向搜索路徑中添加二進(jìn)制樹路徑 include_directories( ${CMAKE_CURRENT_BINARY_DIR} ) BR 添加main庫 add_library(MathFunctions ${CMAKE_CURRENT_BINARY_DIR}/ )  首先,MakeTable的可執(zhí)行文件也和其他被加入的文件一樣被加入。然后。我們還必須增加當(dāng)前的二進(jìn)制路徑到包含路徑的清單中。當(dāng)該工程被構(gòu)建后,它首先會(huì)構(gòu)建MakeTable可執(zhí)行文件。最后,()來生成MathFunctions庫。到目前為止,擁有我們添加的完整特性的頂層CMakeLists文件看起來像是這樣:?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768cmake_minimum_required (VERSION ) project (Tutorial) 版本號(hào) set (Tutorial_VERSION_MAJOR 1) set (Tutorial_VERSION_MINOR 0) 本系統(tǒng)是否提供log和exp函數(shù)? include (${CMAKE_ROOT}/Modules/) check_function_exists (log HAVE_LOG) check_function_exists (exp HAVE_EXP) 我們應(yīng)該使用自己的math函數(shù)嗎? option(USE_MYMATH Use tutorial provided math implementation ON) 配置一個(gè)頭文件來向源代碼傳遞一些CMake設(shè)置。 configure_file ( ${PROJECT_SOURCE_DIR}/${PROJECT_BINARY_DIR}/) 為包含文件的搜索路徑添加二進(jìn)制樹。 include_directories (${PROJECT_BINARY_DIR}) 添加MathFunctions庫嗎? if (USE_MYMATH) include_directories (${PROJECT_SOURCE_DIR}/MathFunctions) add_subdirectory (MathFunctions) set (EXTRA_LIBS ${EXTRA_LIBS} MathFunctions) endif (USE_MYMATH) 添加可執(zhí)行文件 add_executable (Tutorial ) target_link_libraries (Tutorial ${EXTRA_LIBS}) 添加安裝的目標(biāo) install (TARGETS Tutorial DESTINATION bin) install (FILES ${PROJECT_BINARY_DIR}/DESTINATION include) 測(cè)試1 :應(yīng)用程序可以運(yùn)行嗎? add_test (TutorialRuns Tutorial 25) 測(cè)試2 : 使用信息可用嗎? add_test (TutorialUsage Tutorial) set_tests_properties (TutorialUsage PROPERTIES PASS_REGULAR_EXPRESSION Usage:.*number) 定義一個(gè)可以簡化引入測(cè)試過程的宏 macro (do_test arg result) add_test (TutorialComp${arg} Tutorial ${arg}) set_tests_properties (TutorialComp${arg} PROPERTIES PASS_REGULAR_EXPRESSION ${result} ) endmacro (do_test) do a bunch of result based tests 執(zhí)行一系列基于結(jié)果的測(cè)試 do_test (4 4 is 2) do_test (9 9 is 3) do_test (5 5 is )BRdo_test (7 7 is ) do_test (25 25 is 5) do_test (25 25 is 0) do_test ( is ) ?。?// Tutorial的配置選項(xiàng)與設(shè)置如下 define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@ define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@ cmakedefine USE_MYMATH // 該平臺(tái)提供exp和log函數(shù)嗎? cmakedefine HAVE_LOG cmakedefine HAVE_EXP  然后,MathFunctions工程的CMakeLists文件看起來像是這樣:+ View Code?123456789101112131415 首先,我們添加生成這個(gè)表的可執(zhí)行文件 add_executable(MakeTable ) 添加生成源代碼的命令 add_custom_mand ( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ DEPENDS MakeTable COMMAND MakeTable ${CMAKE_CURRENT_BINARY_DIR}/ ) 為包含
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1