ms-tpm-20-ref 在linux下编译

1、代码地址,  GitHub - microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification.Reference implementation of the TCG Trusted Platform Module 2.0 specification. - GitHub - microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification.https://github.com/microsoft/ms-tpm-20-ref

2、解压后编译

(1)  cd到TPMCmd目录下面, cd xxxx/ms-tpm-20-ref/ms-tpm-20-ref-main/TPMCmd

 (2) ./bootstrap

./bootstrap 一般做了什么呢 ? :

        ./bootstrap 是一个常见的在 Unix 或 Linux 系统中用于初始化项目的脚本。具体做了什么取决于脚本的内容,但一般来说,它可能会做以下几件事:

1. 检查系统环境:检查是否安装了必要的软件和库,如果没有,可能会提示用户安装。

2. 配置项目:设置项目的环境变量,生成配置文件等。

3. 构建项目:编译源代码,生成可执行文件。

4. 安装依赖:如果项目有依赖其他库或者项目,./bootstrap 可能会自动下载并安装这些依赖。

这只是一般情况,具体的 ./bootstrap 脚本可能会根据项目的需要做更多的事情。如果你想了解一个具体的 ./bootstrap 脚本做了什么,你可以打开它看看脚本的内容。

(3)./configure

 如果需要去掉warn当error ,打开Makefile文件 ,找到 EXTRA_CFLAGS 去掉 -Werror

如果需要添加其它main函数:

1、首先把TPMCmds.c中的main函数改个名比如main333

2、把 其它main函数拷贝到 TPMCmds.c中 或者 CryptRsa.c中 ,比如:

int
main(
    int              argc,
    char* argv[]
)
{
    int		i;
    int		irc;

    printf("C:begin genRsaKey\n");
    UINT32               e = 0;
    TPMT_PUBLIC  publicArea;
    TPMT_SENSITIVE sensitive;
    RAND_STATE rand;

    printf("C:keyLengthInBitssxxxx  \n");

    unsigned char c[] = { 0xBC, 0xEF, 0x25, 0xFD, 0xD9, 0xB2, 0xDF, 0x0C, 0xEE, 0x50, 0x1C, 0x5D, 0xBD, 0xB4, 0x6B, 0x66, 0x1F, 0xBB, 0xB6, 0xD8, 0x3F, 0x4B, 0xF3, 0x2B, 0xD7, 0x06, 0x65, 0x9A, 0xE0, 0x96, 0xBD, 0xA5, 0xC7, 0xBC, 0x17, 0xBF, 0x2E, 0x9B, 0x2D, 0x8E, 0x29, 0xF8, 0x99, 0x13, 0x77, 0xAC, 0xD0, 0x4B };


    memset(rand.drbg.seed.bytes, 0,48);

    memcpy(rand.drbg.seed.bytes, c, 48);


    rand.drbg.magic = DRBG_MAGIC;
    rand.drbg.reseedCounter = 0x0000000000000064;


    publicArea.parameters.rsaDetail.exponent = 0;
    publicArea.parameters.rsaDetail.keyBits = 2048;
    publicArea.type = 1;
    publicArea.nameAlg = 11;

    publicArea.objectAttributes = 0x000300b2;
    publicArea.authPolicy.t.size = 32;
    

    TPMS_RSA_PARMS rsaParms = publicArea.parameters.rsaDetail;
    rsaParms.keyBits = 0x800;
    rsaParms.exponent = 0;
    rsaParms.symmetric.algorithm = 0x06;
    TPMU_SYM_KEY_BITS keyBits = rsaParms.symmetric.keyBits;
    keyBits.aes = 0x80;
    keyBits.camellia = 0x80;
    keyBits.sym = 0x80;
    keyBits.xor = 0x80;
  
    TPMU_SYM_MODE mode =  rsaParms.symmetric.mode;
    mode.aes = 0x43;
    mode.camellia = 0x43;
    mode.sym = 0x43;

    rsaParms.scheme.scheme = 0x10;
    rsaParms.scheme.details.rsapss.hashAlg = 0;

    sensitive.sensitiveType = 1;
    sensitive.authValue.t.size = 32;
    sensitive.seedValue.t.size = 0;
    sensitive.sensitive.rsa.t.size = 0;


    TPM_RC ret = CryptRsaGenerateKey(
        &publicArea,
        &sensitive,
        &rand
      
    );

    printf("C:CryptRsaGenerateKey = %d \n", ret);
    return ret;
}

(4)make

  make 完成后会生成 xxx.a文件:

Platform/src/libplatform.a

tpm/src/libtpm.a

Platform/src/libplatform.a

(5)

make完成后能看到 生成libtpm.a 的指令:

ar cru tpm/src/libtpm.a tpm/src/X509/tpm_src_libtpm_a-TpmASN1.o tpm/src/X509/tpm_src_libtpm_a-X509_ECC.o tpm/src/X509/tpm_src_libtpm_a-X509_RSA.o tpm/src/X509/tpm_src_libtpm_a-X509_spt.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-ECC_Decrypt.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-ECC_Encrypt.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-ECC_Parameters.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-ECDH_KeyGen.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-ECDH_ZGen.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-EC_Ephemeral.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-RSA_Decrypt.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-RSA_Encrypt.o tpm/src/command/Asymmetric/tpm_src_libtpm_a-ZGen_2Phase.o tpm/src/command/AttachedComponent/tpm_src_libtpm_a-AC_GetCapability.o tpm/src/command/AttachedComponent/tpm_src_libtpm_a-AC_Send.o tpm/src/command/AttachedComponent/tpm_src_libtpm_a-AC_spt.o tpm/src/command/AttachedComponent/tpm_src_libtpm_a-Policy_AC_SendSelect.o tpm/src/command/Attestation/tpm_src_libtpm_a-Attest_spt.o tpm/src/command/Attestation/tpm_src_libtpm_a-Certify.o tpm/src/command/Attestation/tpm_src_libtpm_a-CertifyCreation.o tpm/src/command/Attestation/tpm_src_libtpm_a-CertifyX509.o tpm/src/command/Attestation/tpm_src_libtpm_a-GetCommandAuditDigest.o tpm/src/command/Attestation/tpm_src_libtpm_a-GetSessionAuditDigest.o tpm/src/command/Attestation/tpm_src_libtpm_a-GetTime.o tpm/src/command/Attestation/tpm_src_libtpm_a-Quote.o tpm/src/command/Capability/tpm_src_libtpm_a-GetCapability.o tpm/src/command/Capability/tpm_src_libtpm_a-TestParms.o tpm/src/command/ClockTimer/tpm_src_libtpm_a-ACT_SetTimeout.o tpm/src/command/ClockTimer/tpm_src_libtpm_a-ACT_spt.o tpm/src/command/ClockTimer/tpm_src_libtpm_a-ClockRateAdjust.o tpm/src/command/ClockTimer/tpm_src_libtpm_a-ClockSet.o tpm/src/command/ClockTimer/tpm_src_libtpm_a-ReadClock.o tpm/src/command/CommandAudit/tpm_src_libtpm_a-SetCommandCodeAuditStatus.o tpm/src/command/Context/tpm_src_libtpm_a-ContextLoad.o tpm/src/command/Context/tpm_src_libtpm_a-ContextSave.o tpm/src/command/Context/tpm_src_libtpm_a-Context_spt.o tpm/src/command/Context/tpm_src_libtpm_a-EvictControl.o tpm/src/command/Context/tpm_src_libtpm_a-FlushContext.o tpm/src/command/DA/tpm_src_libtpm_a-DictionaryAttackLockReset.o tpm/src/command/DA/tpm_src_libtpm_a-DictionaryAttackParameters.o tpm/src/command/Duplication/tpm_src_libtpm_a-Duplicate.o tpm/src/command/Duplication/tpm_src_libtpm_a-Import.o tpm/src/command/Duplication/tpm_src_libtpm_a-Rewrap.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyAuthValue.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyAuthorize.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyAuthorizeNV.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyCommandCode.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyCounterTimer.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyCpHash.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyDuplicationSelect.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyGetDigest.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyLocality.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyNV.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyNameHash.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyNvWritten.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyOR.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyPCR.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyPassword.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyPhysicalPresence.o tpm/src/command/EA/tpm_src_libtpm_a-PolicySecret.o tpm/src/command/EA/tpm_src_libtpm_a-PolicySigned.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyTemplate.o tpm/src/command/EA/tpm_src_libtpm_a-PolicyTicket.o tpm/src/command/EA/tpm_src_libtpm_a-Policy_spt.o tpm/src/command/Ecdaa/tpm_src_libtpm_a-Commit.o tpm/src/command/FieldUpgrade/tpm_src_libtpm_a-FieldUpgradeData.o tpm/src/command/FieldUpgrade/tpm_src_libtpm_a-FieldUpgradeStart.o tpm/src/command/FieldUpgrade/tpm_src_libtpm_a-FirmwareRead.o tpm/src/command/HashHMAC/tpm_src_libtpm_a-EventSequenceComplete.o tpm/src/command/HashHMAC/tpm_src_libtpm_a-HMAC_Start.o tpm/src/command/HashHMAC/tpm_src_libtpm_a-HashSequenceStart.o tpm/src/command/HashHMAC/tpm_src_libtpm_a-MAC_Start.o tpm/src/command/HashHMAC/tpm_src_libtpm_a-SequenceComplete.o tpm/src/command/HashHMAC/tpm_src_libtpm_a-SequenceUpdate.o tpm/src/command/Hierarchy/tpm_src_libtpm_a-ChangeEPS.o tpm/src/command/Hierarchy/tpm_src_libtpm_a-ChangePPS.o tpm/src/command/Hierarchy/tpm_src_libtpm_a-Clear.o tpm/src/command/Hierarchy/tpm_src_libtpm_a-ClearControl.o tpm/src/command/Hierarchy/tpm_src_libtpm_a-CreatePrimary.o tpm/src/command/Hierarchy/tpm_src_libtpm_a-HierarchyChangeAuth.o tpm/src/command/Hierarchy/tpm_src_libtpm_a-HierarchyControl.o tpm/src/command/Hierarchy/tpm_src_libtpm_a-SetPrimaryPolicy.o tpm/src/command/Misc/tpm_src_libtpm_a-PP_Commands.o tpm/src/command/Misc/tpm_src_libtpm_a-SetAlgorithmSet.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_Certify.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_ChangeAuth.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_DefineSpace.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_Extend.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_GlobalWriteLock.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_Increment.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_Read.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_ReadLock.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_ReadPublic.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_SetBits.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_UndefineSpace.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_UndefineSpaceSpecial.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_Write.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_WriteLock.o tpm/src/command/NVStorage/tpm_src_libtpm_a-NV_spt.o tpm/src/command/Object/tpm_src_libtpm_a-ActivateCredential.o tpm/src/command/Object/tpm_src_libtpm_a-Create.o tpm/src/command/Object/tpm_src_libtpm_a-CreateLoaded.o tpm/src/command/Object/tpm_src_libtpm_a-Load.o tpm/src/command/Object/tpm_src_libtpm_a-LoadExternal.o tpm/src/command/Object/tpm_src_libtpm_a-MakeCredential.o tpm/src/command/Object/tpm_src_libtpm_a-ObjectChangeAuth.o tpm/src/command/Object/tpm_src_libtpm_a-Object_spt.o tpm/src/command/Object/tpm_src_libtpm_a-ReadPublic.o tpm/src/command/Object/tpm_src_libtpm_a-Unseal.o tpm/src/command/PCR/tpm_src_libtpm_a-PCR_Allocate.o tpm/src/command/PCR/tpm_src_libtpm_a-PCR_Event.o tpm/src/command/PCR/tpm_src_libtpm_a-PCR_Extend.o tpm/src/command/PCR/tpm_src_libtpm_a-PCR_Read.o tpm/src/command/PCR/tpm_src_libtpm_a-PCR_Reset.o tpm/src/command/PCR/tpm_src_libtpm_a-PCR_SetAuthPolicy.o tpm/src/command/PCR/tpm_src_libtpm_a-PCR_SetAuthValue.o tpm/src/command/Random/tpm_src_libtpm_a-GetRandom.o tpm/src/command/Random/tpm_src_libtpm_a-StirRandom.o tpm/src/command/Session/tpm_src_libtpm_a-PolicyRestart.o tpm/src/command/Session/tpm_src_libtpm_a-StartAuthSession.o tpm/src/command/Signature/tpm_src_libtpm_a-Sign.o tpm/src/command/Signature/tpm_src_libtpm_a-VerifySignature.o tpm/src/command/Startup/tpm_src_libtpm_a-Shutdown.o tpm/src/command/Startup/tpm_src_libtpm_a-Startup.o tpm/src/command/Symmetric/tpm_src_libtpm_a-EncryptDecrypt.o tpm/src/command/Symmetric/tpm_src_libtpm_a-EncryptDecrypt2.o tpm/src/command/Symmetric/tpm_src_libtpm_a-EncryptDecrypt_spt.o tpm/src/command/Symmetric/tpm_src_libtpm_a-HMAC.o tpm/src/command/Symmetric/tpm_src_libtpm_a-Hash.o tpm/src/command/Symmetric/tpm_src_libtpm_a-MAC.o tpm/src/command/Testing/tpm_src_libtpm_a-GetTestResult.o tpm/src/command/Testing/tpm_src_libtpm_a-IncrementalSelfTest.o tpm/src/command/Testing/tpm_src_libtpm_a-SelfTest.o tpm/src/command/Vendor/tpm_src_libtpm_a-Vendor_TCG_Test.o tpm/src/crypt/tpm_src_libtpm_a-AlgorithmTests.o tpm/src/crypt/tpm_src_libtpm_a-BnConvert.o tpm/src/crypt/tpm_src_libtpm_a-BnMath.o tpm/src/crypt/tpm_src_libtpm_a-BnMemory.o tpm/src/crypt/tpm_src_libtpm_a-CryptCmac.o tpm/src/crypt/tpm_src_libtpm_a-CryptDes.o tpm/src/crypt/tpm_src_libtpm_a-CryptEccCrypt.o tpm/src/crypt/tpm_src_libtpm_a-CryptEccData.o tpm/src/crypt/tpm_src_libtpm_a-CryptEccKeyExchange.o tpm/src/crypt/tpm_src_libtpm_a-CryptEccMain.o tpm/src/crypt/tpm_src_libtpm_a-CryptEccSignature.o tpm/src/crypt/tpm_src_libtpm_a-CryptHash.o tpm/src/crypt/tpm_src_libtpm_a-CryptPrime.o tpm/src/crypt/tpm_src_libtpm_a-CryptPrimeSieve.o tpm/src/crypt/tpm_src_libtpm_a-CryptRand.o tpm/src/crypt/tpm_src_libtpm_a-CryptRsa.o tpm/src/crypt/tpm_src_libtpm_a-CryptSelfTest.o tpm/src/crypt/tpm_src_libtpm_a-CryptSmac.o tpm/src/crypt/tpm_src_libtpm_a-CryptSym.o tpm/src/crypt/tpm_src_libtpm_a-CryptUtil.o tpm/src/crypt/tpm_src_libtpm_a-PrimeData.o tpm/src/crypt/tpm_src_libtpm_a-RsaKeyCache.o tpm/src/crypt/tpm_src_libtpm_a-Ticket.o tpm/src/crypt/ltc/tpm_src_libtpm_a-TpmToLtcDesSupport.o tpm/src/crypt/ltc/tpm_src_libtpm_a-TpmToLtcMath.o tpm/src/crypt/ltc/tpm_src_libtpm_a-TpmToLtcSupport.o tpm/src/crypt/ossl/tpm_src_libtpm_a-TpmToOsslDesSupport.o tpm/src/crypt/ossl/tpm_src_libtpm_a-TpmToOsslMath.o tpm/src/crypt/ossl/tpm_src_libtpm_a-TpmToOsslSupport.o tpm/src/crypt/wolf/tpm_src_libtpm_a-TpmToWolfDesSupport.o tpm/src/crypt/wolf/tpm_src_libtpm_a-TpmToWolfMath.o tpm/src/crypt/wolf/tpm_src_libtpm_a-TpmToWolfSupport.o tpm/src/events/tpm_src_libtpm_a-_TPM_Hash_Data.o tpm/src/events/tpm_src_libtpm_a-_TPM_Hash_End.o tpm/src/events/tpm_src_libtpm_a-_TPM_Hash_Start.o tpm/src/events/tpm_src_libtpm_a-_TPM_Init.o tpm/src/main/tpm_src_libtpm_a-CommandDispatcher.o tpm/src/main/tpm_src_libtpm_a-ExecCommand.o tpm/src/main/tpm_src_libtpm_a-SessionProcess.o tpm/src/subsystem/tpm_src_libtpm_a-CommandAudit.o tpm/src/subsystem/tpm_src_libtpm_a-DA.o tpm/src/subsystem/tpm_src_libtpm_a-Hierarchy.o tpm/src/subsystem/tpm_src_libtpm_a-NvDynamic.o tpm/src/subsystem/tpm_src_libtpm_a-NvReserved.o tpm/src/subsystem/tpm_src_libtpm_a-Object.o tpm/src/subsystem/tpm_src_libtpm_a-PCR.o tpm/src/subsystem/tpm_src_libtpm_a-PP.o tpm/src/subsystem/tpm_src_libtpm_a-Session.o tpm/src/subsystem/tpm_src_libtpm_a-Time.o tpm/src/support/tpm_src_libtpm_a-AlgorithmCap.o tpm/src/support/tpm_src_libtpm_a-Bits.o tpm/src/support/tpm_src_libtpm_a-CommandCodeAttributes.o tpm/src/support/tpm_src_libtpm_a-Entity.o tpm/src/support/tpm_src_libtpm_a-Global.o tpm/src/support/tpm_src_libtpm_a-Handle.o tpm/src/support/tpm_src_libtpm_a-IoBuffers.o tpm/src/support/tpm_src_libtpm_a-Locality.o tpm/src/support/tpm_src_libtpm_a-Manufacture.o tpm/src/support/tpm_src_libtpm_a-Marshal.o tpm/src/support/tpm_src_libtpm_a-MathOnByteBuffers.o tpm/src/support/tpm_src_libtpm_a-Memory.o tpm/src/support/tpm_src_libtpm_a-Power.o tpm/src/support/tpm_src_libtpm_a-PropertyCap.o tpm/src/support/tpm_src_libtpm_a-Response.o tpm/src/support/tpm_src_libtpm_a-ResponseCodeProcessing.o tpm/src/support/tpm_src_libtpm_a-TableDrivenMarshal.o tpm/src/support/tpm_src_libtpm_a-TableMarshalData.o tpm/src/support/tpm_src_libtpm_a-TpmFail.o tpm/src/support/tpm_src_libtpm_a-TpmSizeChecks.o   


5.1 如果需要把tpm模块编译成 可执行文件则:

ar指令前面改成: gcc  -fPIC -L Platform/src/ -L tpm/src/ -o tpm/src/libtpmExeMS

后面添加:   -lcrypto -lplatform -ltpm   (注意不能在前面加,否则会报符号找不到)

5.2 如果需要编译成 动态库.so文件则:

ar指令前面改成:gcc  -fPIC -L Platform/src/ -L tpm/src/  -shared  -o tpm/src/libtpm2.so 

后面添加:  -lcrypto -lplatform -ltpm (注意不能在前面加,否则会报符号找不到)

5.3  make后会把Simulator模块编译成可执行文件

gcc -std=gnu11  -Wall -Wformat-security -fstack-protector-all -fPIC -Wno-error=empty-body -Wno-error=parentheses -Wno-error=pointer-to-int-cast -Wno-error=missing-braces -Wno-error=unused-result -I ./Platform/include -I ./Platform/include/prototypes -I ./tpm/include -I ./tpm/include/prototypes -I ./Simulator/include -I ./Simulator/include/prototypes  -pthread -g -O2   -o Simulator/src/tpm2-simulator Simulator/src/Simulator_src_tpm2_simulator-TPMCmdp.o Simulator/src/Simulator_src_tpm2_simulator-TPMCmds.o Simulator/src/Simulator_src_tpm2_simulator-TcpServer.o  Platform/src/libplatform.a tpm/src/libtpm.a Platform/src/libplatform.a -lcrypto

其中,

输出为:Simulator/src/tpm2-simulator

输入为;

Simulator 目录下的3个.o文件

3个静态库.a和openssl库crypto

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/90722.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nodejs-nrm:快速切换npm源 / npm官方源和其他自定义源之间切换

一、理解 Nodejs nrm Nodejs nrm 是一个管理 npm 源的工具。由于 npm 在国内的速度较慢,很多开发者会使用淘宝的 npm 镜像源,但是也会遇到一些问题,例如某些包在淘宝镜像源中不存在,或者淘宝镜像源本身也会有问题。 Nodejs nrm …

CSS scoped 属性的原理

scoped 一、scoped 是什么?二、实现原理 一、scoped 是什么? 在 Vue 组件中,为了使样式私有化(模块化),不对全局造成污染,可以在 style 标签上添加 scoped 属性以表示它的只属于当下的模块&am…

【MOS管的作用和工作原理】

数电/模电知识学习与分享001 MOS管的作用和工作原理1、MOS管基本概念2、MOS管基本原理3、MOS管广泛作用4、MOS管特点4、参考文献 MOS管的作用和工作原理 1、MOS管基本概念 MOS管(Metal-Oxide-Semiconductor Field-Effect Transistor)是一种常用的半导体…

Unity 之利用 localEulerAngle与EulerAngle 控制物体旋转

文章目录 概念讲解localEulerAngle与EulerAngle的区别 概念讲解 欧拉角(Euler Angles)是一种常用于描述物体在三维空间中旋转的方法。它使用三个角度来表示旋转,分别绕物体的三个坐标轴(通常是X、Y和Z轴)进行旋转。这…

AI Agent在情景猜谜场景下的AgentBench基准测试

目录 AgentBench评估哪些场景? 近日,来自清华大学、俄亥俄州立大学和加州大学伯克利分校的研究者设计了一个测试工具——AgentBench,用于评估LLM在多维度开放式生成环境中的推理能力和决策能力。研究者对25个LLM进行了全面评估,包括基于API的商业模型和开源模型。 他们发现…

安卓移动应用开发实训室建设方案

一 、系统概述 安卓移动应用开发作为新一代信息技术的重点和促进信息消费的核心产业,已成为我国转变信息服务业的发展新热点:成为信息通信领域发展最快、市场潜力最大的业务领域。互联网尤其是移动互联网,以其巨大的信息交换能力和快速渗透能…

es的索引管理

概念 (1)集群(Cluster): ES可以作为一个独立的单个搜索服务器。不过,为了处理大型数据集,实现容错和高可用性,ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群。 &…

docker项目实战

目录 1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 1)拉取mysql:5.6和owncloud镜像 2)后台运行容器 3)通过ip:端口的方式访问owncloud 2、安装搭建私有仓库 Harbor 1)首先准备所需包 2)安装h…

JavaScript——为什么静态方法不能调用非静态方法

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

RabbitMQ---订阅模型-Fanout

1、 订阅模型-Fanout Fanout,也称为广播。 流程图: 在广播模式下,消息发送流程是这样的: 1) 可以有多个消费者 2) 每个消费者有自己的queue(队列) 3) 每个队列都要绑定…

C++:命名空间,缺省参数,函数重载,引用,内联函数

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》 文章目录 前言一、命名空间命名空间的定义命名空间的使用 二、缺省参数缺省参数概念缺省参数分类 三、函数重载函数重载的概念 四、引用引用的概念引用特性引用的使用场景引用与指针的区别 …

vr内容编辑软件降低了虚拟现实项目开发门槛

VR虚拟场景编辑器是一种专门用于创建、修改和设计虚拟场景的工具。它利用vr虚拟现实技术,让用户可以在三维空间中直接对场景进行操作和编辑。这种编辑器的出现,使得用户可以更加直观、自由地进行场景设计和制作,为诸多领域带来了新的可能性。…

目标检测(Object Detection):Fast R-CNN,YOLO v3

目录 目标检测(Object Detection) R-CNN SPPNet Fast R-CNN YOLO v1 YOLO v2 YOLO v3 目标检测(Object Detection) 任务是计算机视觉中非常重要的基础问题,也是解决图像分割、目标跟踪、图像描述等问题的基础。目标检测是检测输入图像是否存在给定类别的物体…

将公共组件提取到npm包中

多个前端项目中公共组件使用方案(npm包方式) - 简书

深入篇【C++】set和map(multiset/multimap)特性总结与使用

深入篇【C】set和map(multiset/multimap)特性总结与使用 一.set/multiset总结二.map/multiset总结三.set/map应用 一.set/multiset总结 set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每…

服务器数据恢复-EVA存储磁盘故障导致存储崩溃的数据恢复案例

EVA系列存储是一款以虚拟化存储为实现目的的中高端存储设备。EVA存储中的数据在EVA存储设备工作过程中会不断进行迁移,如果运行的任务比较复杂,EVA存储磁盘负载加重,很容易出现故障的。EVA存储通过大量磁盘的冗余空间和故障后rss冗余磁盘动态…

“车-路-网”电动汽车充电负荷时空分布预测(matlab)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考《基于动态交通信息的电动汽车充电负荷时空分布预测》和《基于动态交通信息的电动汽车充电需求预测模型及其对配网的影响分析》文献模型,考虑私家车、出租车和共用车三类交通工具特性和…

诺依框架ruoyi.js添加默认当年日期范围

ruoyi.js添加方法 // 默认当年日期范围如:2023-01-01到2023-08-22(至今) export function defaultYearDate(data) {// this.dateDefaultShow new Date();// this.dateDefaultShow.setMonth(new Date().getMonth() - 1);const end new Date…

element-table的动态操作,自动以表格,动态新增行、列,删除行列

灵活的自定义表格行列以及增删改查的操作,右键选中列则是列的删除&#xff0c;效果如下 <template><div class"st-table"><div style"width: 100%"><el-button click"addRow()" type"primary" icon"CircleP…

【学习FreeRTOS】第17章——FreeRTOS任务通知

1.任务通知的简介 任务通知&#xff1a;用来通知任务的&#xff0c;任务控制块中的结构体成员变量 ulNotifiedValue就是这个通知值。 使用队列、信号量、事件标志组时都需另外创建一个结构体&#xff0c;通过中间的结构体进行间接通信&#xff01; 使用任务通知时&#xff0c…