国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)

這篇具有很好參考價(jià)值的文章主要介紹了【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)


??博__主??:米碼收割機(jī)
??技__能??:C++/Python語(yǔ)言
??公眾號(hào)??:測(cè)試開(kāi)發(fā)自動(dòng)化
??專__注??:專注主流機(jī)器人、人工智能等相關(guān)領(lǐng)域的開(kāi)發(fā)、測(cè)試技術(shù)


【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目



1. 構(gòu)建靜態(tài)庫(kù)

  • Linux構(gòu)建參考我的文章:【點(diǎn)擊這里】
  • windows構(gòu)建靜態(tài)庫(kù)參考我的文章:【點(diǎn)擊這里】

2. 構(gòu)建項(xiàng)目文件夾

(1)創(chuàng)建GtestAPI的文件夾,作為項(xiàng)目的文件夾。
?
(2)在GtestAPI文件夾下:

  • 創(chuàng)建include文件夾用于存放gtest的頭文件
  • 創(chuàng)建CMakeLists.txt用于編寫(xiě)構(gòu)建腳本
  • 創(chuàng)建lib文件夾用于存放靜態(tài)庫(kù)
    ?

(3)在lib文件夾下:

  • 創(chuàng)建debug文件加和release文件夾用于存放windows和linux編譯出來(lái)的靜態(tài)庫(kù)(.lib和.a文件)
    ?

(4)創(chuàng)建GtestAPI.cpp 用來(lái)編寫(xiě)測(cè)試代碼。

整體的目錄結(jié)構(gòu)如下:

GtestAPI
? ├─ ?include
? ├─ ? CMakeLists.txt
? └─? lib
?????????├─ ?debug
?????????└─? release

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)


3. include文件夾

將克隆下來(lái)的googletest-main的文件夾中的include文件夾(路徑:D:\googletest-main\googletest\include)中的整個(gè)gtest文件夾復(fù)制到你的項(xiàng)目目錄中。

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)


4. lib文件夾

將你在Linux構(gòu)建好的靜態(tài)庫(kù)(release和debug模式)和windows上構(gòu)建好的靜態(tài)庫(kù)(release和debug模式)分別復(fù)制到 /GtestAPI/lib/release/GtestAPI/lib/debug 文件夾中:

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)

注意:此處必須是windows和Linux系統(tǒng)在對(duì)應(yīng)模式下(release/debug)構(gòu)建出來(lái)的靜態(tài)庫(kù)。靜態(tài)庫(kù)必須與文件夾一一對(duì)應(yīng),否則會(huì)報(bào)錯(cuò)。


5. CMakeLists.txt

編寫(xiě)CMakeLists.txt構(gòu)建文件,內(nèi)容如下(復(fù)制到CMakeLists.txt中即可):

cmake_minimum_required(VERSION 3.12)

project(GtestAPI)

set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/GtestAPI.cpp)
set(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)

set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)

add_executable(GtestAPI ${SOURCES})

target_include_directories(GtestAPI PRIVATE ${INCLUDE_DIR})

set(DEBUG_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/debug)
set(RELEASE_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/release)

if(CMAKE_BUILD_TYPE MATCHES Debug)
    # debug模式
    target_link_directories(GtestAPI PRIVATE ${DEBUG_LIB_DIR})
    target_link_libraries(GtestAPI PRIVATE gmock_main gtest_main)
    
    # 設(shè)置debug模式下的編譯選項(xiàng)
    target_compile_definitions(GtestAPI PRIVATE _ITERATOR_DEBUG_LEVEL=2)
    
    if(WIN32)
        target_compile_options(GtestAPI PRIVATE /MDd)
    else()
        find_package(Threads REQUIRED)
        target_link_libraries(GtestAPI PRIVATE Threads::Threads)
        target_compile_options(GtestAPI PRIVATE -g)
    endif()
else()
    # release模式
    target_link_directories(GtestAPI PRIVATE ${RELEASE_LIB_DIR})
    target_link_libraries(GtestAPI PRIVATE gmock_main gtest_main)
    
    # 設(shè)置release模式下的編譯選項(xiàng)
    target_compile_definitions(GtestAPI PRIVATE _ITERATOR_DEBUG_LEVEL=0)
    
    if(WIN32)
        target_compile_options(GtestAPI PRIVATE /MD)
    else()
        find_package(Threads REQUIRED)
        target_link_libraries(GtestAPI PRIVATE Threads::Threads)
        target_compile_options(GtestAPI PRIVATE -O3)
    endif()
endif()

# 鏈接共享庫(kù)文件
target_link_libraries(GtestAPI PRIVATE gmock gtest)


6. GtestAPI.cpp

編寫(xiě)測(cè)試用例:

代碼如下(示例):

#include <iostream>
#include "gtest/gtest.h"

TEST(ErrorCodeTest, errorcode) {
    int a = 0;
    EXPECT_EQ(a, 0);
}


int main(int argc, char** argv) {
    testing::InitGoogleTest();
    return RUN_ALL_TESTS();
}

7. 開(kāi)始構(gòu)建

7.1 Linux構(gòu)建運(yùn)行

將你的 GtestAPI文件夾工程拷貝到Linux中,執(zhí)行以下命令:

cd GtestAPI
mkdir build && cd build
cmake .. && make 

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)
執(zhí)行如下命令運(yùn)行:

./bin/GtestAPI

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)


7.2 windows構(gòu)建運(yùn)行

使用CMake工具進(jìn)行構(gòu)建,填寫(xiě)好源碼路徑和構(gòu)建路徑。

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)

點(diǎn)擊Configure,彈窗內(nèi)容設(shè)置參考如下:

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)
點(diǎn)擊Generate和 Open Project

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)

運(yùn)行結(jié)果如下:

【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)


8. 總結(jié)

如果不知道如何構(gòu)建對(duì)應(yīng)的項(xiàng)目,參考第一步,歷史博客。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-470938.html


到了這里,關(guān)于【GTest】使用CMakeLitsts.txt構(gòu)建Windows和Linux的跨平臺(tái)GoogleTest項(xiàng)目(非常詳細(xì)+親測(cè)有效)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 跨平臺(tái)指南:在 Windows 和 Linux 上安裝 OpenSSL 的完整流程

    跨平臺(tái)指南:在 Windows 和 Linux 上安裝 OpenSSL 的完整流程

    一:找到安裝包,雙擊即可 https://gitee.com/wake-up-again/installation-package.git 二:按照提示,一步一步來(lái),就可以啦 三:此界面意思是,是否想向創(chuàng)作者捐款,自己視情況而定啦。 四:安裝完畢之后,接下來(lái)就是VS下的環(huán)境配置了。 在VS下創(chuàng)建一個(gè)新項(xiàng)目,點(diǎn)到屬性界面 五:找到

    2024年04月23日
    瀏覽(25)
  • 使用 docker buildx 構(gòu)建跨平臺(tái)鏡像 (QEMU/buildx/build)

    https://docs.docker.com/build/building/multi-platform 構(gòu)建跨平臺(tái)鏡像是 Docker 生態(tài)系統(tǒng)中的一個(gè)重要話題, 因?yàn)榭缙脚_(tái)鏡像可以在多種平臺(tái)上運(yùn)行, 極具靈活性。為了實(shí)現(xiàn)這個(gè)目標(biāo), Docker 社區(qū)提供了多種方式來(lái)構(gòu)建跨平臺(tái)鏡像, 其中之一是使用 docker manifest, 我在《使用 docker manifest 構(gòu)建跨平

    2024年02月03日
    瀏覽(26)
  • VirtualBox 7.0.10 (macOS, Linux, Windows) - 開(kāi)源跨平臺(tái)虛擬化軟件

    VirtualBox 7.0.10 (macOS, Linux, Windows) - 開(kāi)源跨平臺(tái)虛擬化軟件

    VirtualBox 7.0.10 (macOS, Linux, Windows) - 開(kāi)源跨平臺(tái)虛擬化軟件 Oracle VM VirtualBox 7 請(qǐng)?jiān)L問(wèn)原文鏈接:https://sysin.org/blog/virtualbox-7/,查看最新版。原創(chuàng)作品,轉(zhuǎn)載請(qǐng)保留出處。 作者主頁(yè):sysin.org 2022 年 10 月 10 日,VirtualBox 7.0.0 發(fā)布! 甲骨文今天發(fā)布了重要的新版本 Oracle VM VirtualBox,

    2024年02月17日
    瀏覽(35)
  • 【LocalSend】開(kāi)源跨平臺(tái)的局域網(wǎng)文件傳輸工具,支持IOS、Android、Mac、Windows、Linux

    【LocalSend】開(kāi)源跨平臺(tái)的局域網(wǎng)文件傳輸工具,支持IOS、Android、Mac、Windows、Linux

    工作前提條件:設(shè)備使用相同的局域網(wǎng)。 LocalSend is a cross-platform app that enables secure communication between devices using a REST API and HTTPS encryption. Unlike other messaging apps that rely on external servers, LocalSend doesn’t require an internet connection or third-party servers, making it a fast and reliable solution for local

    2024年02月17日
    瀏覽(92)
  • SecureCRT & SecureFX 9.5 for macOS, Linux, Windows 下載 - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸

    SecureCRT & SecureFX 9.5 for macOS, Linux, Windows 下載 - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸

    SecureCRT SecureFX 9.5 for macOS, Linux, Windows 下載 - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸 請(qǐng)?jiān)L問(wèn)原文鏈接:SecureCRT SecureFX 9.5 for macOS, Linux, Windows,查看最新版。原創(chuàng)作品,轉(zhuǎn)載請(qǐng)保留出處。 作者主頁(yè):sysin.org SecureCRT 客戶端運(yùn)行于 Windows、Mac 和 Linux,將堅(jiān)如磐石的終端仿真與強(qiáng)大的

    2024年02月21日
    瀏覽(20)
  • SecureCRT & SecureFX 9.5.1.3272 for macOS, Linux, Windows - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸

    SecureCRT & SecureFX 9.5.1.3272 for macOS, Linux, Windows - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸

    SecureCRT SecureFX 9.5.1.3272 for macOS, Linux, Windows - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸 請(qǐng)?jiān)L問(wèn)原文鏈接:https://sysin.org/blog/securecrt-9/,查看最新版。原創(chuàng)作品,轉(zhuǎn)載請(qǐng)保留出處。 作者主頁(yè):sysin.org SecureCRT 客戶端運(yùn)行于 Windows、Mac 和 Linux,將堅(jiān)如磐石的終端仿真與強(qiáng)大的加密、廣泛

    2024年03月11日
    瀏覽(46)
  • VSCode:使用CMakeLists.txt構(gòu)建C++項(xiàng)目

    VSCode:使用CMakeLists.txt構(gòu)建C++項(xiàng)目

    插件: CMake插件主要功能是CMake語(yǔ)法高亮、自動(dòng)補(bǔ)全 CMake Tools的功能主要是結(jié)合VSCode IDE使用CMake這個(gè)工具,比如生成CMake項(xiàng)目、構(gòu)建CMake項(xiàng)目等 CMake Tools Helper CMake工具本身還是要下載到本地,并且配置環(huán)境變量。 包括6部分:build文件夾、include文件夾、src文件夾、lib文件夾、

    2024年02月03日
    瀏覽(55)
  • C#winform軟件實(shí)現(xiàn)一次編譯,跨平臺(tái)windows和linux兼容運(yùn)行,兼容Visual Studio原生界面Form表單開(kāi)發(fā)

    C#winform軟件實(shí)現(xiàn)一次編譯,跨平臺(tái)windows和linux兼容運(yùn)行,兼容Visual Studio原生界面Form表單開(kāi)發(fā)

    微軟的.net core開(kāi)發(fā)工具,目前來(lái)看,winform界面軟件還沒(méi)有打算要支持linux系統(tǒng)下運(yùn)行的意思,要想讓c#桌面軟件在linux系統(tǒng)上運(yùn)行,開(kāi)發(fā)起來(lái)還比較麻煩。微軟只讓c#的控制臺(tái)軟件支持在linux運(yùn)行。 我想到的一個(gè)方案是自定義封裝軟件的System.Windows.Forms組件,把支持windows和lin

    2024年02月08日
    瀏覽(29)
  • web前端項(xiàng)目使用electron打包成跨平臺(tái)桌面端程序(Windows)

    web前端項(xiàng)目使用electron打包成跨平臺(tái)桌面端程序(Windows)

    Electron是一個(gè)使用 JavaScript、HTML 和 CSS 構(gòu)建桌面應(yīng)用程序的框架。 嵌入 Chromium 和 Node.js 到 二進(jìn)制的 Electron 允許您保持一個(gè) JavaScript 代碼代碼庫(kù)并創(chuàng)建 在Windows上運(yùn)行的跨平臺(tái)應(yīng)用 macOS和Linux——不需要本地開(kāi)發(fā) 經(jīng)驗(yàn)。 在使用Electron進(jìn)行開(kāi)發(fā)之前,您需要安裝 Node.js。 我們建

    2024年02月16日
    瀏覽(26)
  • Flutter 實(shí)戰(zhàn):構(gòu)建跨平臺(tái)應(yīng)用

    Flutter 實(shí)戰(zhàn):構(gòu)建跨平臺(tái)應(yīng)用

    Flutter是由Google開(kāi)發(fā)的一款開(kāi)源移動(dòng)應(yīng)用開(kāi)發(fā)框架,它可以幫助開(kāi)發(fā)者在iOS和Android平臺(tái)上快速、高效地開(kāi)發(fā)應(yīng)用。Flutter使用Dart語(yǔ)言作為開(kāi)發(fā)語(yǔ)言,具有跨平臺(tái)兼容性高、開(kāi)發(fā)效率快、性能優(yōu)異等特點(diǎn)。本文將通過(guò)實(shí)戰(zhàn)案例,介紹如何使用Flutter構(gòu)建跨平臺(tái)應(yīng)用。 在開(kāi)始Flutte

    2024年02月05日
    瀏覽(1262)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包