警告:源文件中未提供 SPDX 许可证标识符

Posted

技术标签:

【中文标题】警告:源文件中未提供 SPDX 许可证标识符【英文标题】:Warning: SPDX license identifier not provided in source file 【发布时间】:2021-03-21 21:01:10 【问题描述】:

我创建了一个新的 Solidity 合约。合同已启动并正在运行,但给了我这个警告。

Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

编译时没有错误。

我在https://remix.ethereum.org/ 中使用的编译器版本是v0.7.5+commit.eb77ed08 语言:Solidity EVM 版本:编译器默认值

每当我按下编译时,它都会给我警告,但部署时没有问题。

我的代码sn-p:

pragma solidity ^0.7.5;
contract TestContract 
// Some logic



【问题讨论】:

docs.soliditylang.org/en/v0.6.8/… 【参考方案1】:

从 Solidity ^0.6.8 引入 SPDX 许可证。所以需要在代码中使用SPDX-License-Identifier。

看看这个:https://forum.openzeppelin.com/t/solidity-0-6-8-introduces-spdx-license-identifiers/2859

例如,在您的代码中,您需要使用许可证标识符,例如

// SPDX-License-Identifier: MIT
pragma solidity ^0.7.5;
contract TestContract 
// Some logic

您需要根据您的项目使用许可证。其他一些许可证是:

// SPDX-License-Identifier: GPL-3.0-or-later

您可以在此处找到许可证列表: https://spdx.org/licenses/

【讨论】:

以上是关于警告:源文件中未提供 SPDX 许可证标识符的主要内容,如果未能解决你的问题,请参考以下文章

C++ Visual Studio 2008 中未声明的标识符

错误:推力程序中未定义标识符“atomicOr”

智能合约实战 solidity 语法学习 02 [ SPDX remix控制台介绍 ]

智能合约实战 solidity 语法学习 02 [ SPDX remix控制台介绍 ]

托管代码中未声明的标识符错误...Visual C#

RestKit - RKObjectManager 中未声明的标识符“DISPATCH_QUEUE_SERIAL”?