小编dob*_*ler的帖子

命名空间中的内联函数在gcc上的链接期间生成重复的符号

我有一个带有内联函数的命名空间,如果有多个源文件,它将被使用.尝试链接我的应用程序时,内联函数将报告为重复符号.似乎我的代码不会内联函数,我想知道这是否是预期的行为以及如何最好地处理它.

我使用以下gcc选项:-g -Wextra -pedantic -Wmissing-field-initializers -Wredundant-decls -Wfloat-equal -Wno-reorder -Wno-long-long相同的代码样式似乎在构建时正确编译和链接一个VC7环境.

以下代码示例显示了代码的结构:

/* header.h */
namespace myNamespace {
inline bool myFunction() {return true;}
}

/* use_1.cpp */
#include "header.h"
...
bool OK = myNamespace::myFunction();
...

/* use_2.cpp */
#include "header.h"
...
bool OK = myNamespace::myFunction();
...
Run Code Online (Sandbox Code Playgroud)

c++ gcc inline duplicates

9
推荐指数
1
解决办法
3744
查看次数

在python中重载unittest.testcase

我试图通过对unittest.testcase类进行子类化来创建自定义单元测试框架,但在处理该__init__方法时似乎犯了一个错误.

我无法弄清楚为什么构造函数在ComplexTest进入之前没有被调用BasicTest,异常似乎也与我的构造函数有关.

我是Python的新手,所以对于如何解决这个特定问题或我的用例的替代架构的任何帮助都将是非常受欢迎的.

谢谢!

1)test_framework.py

import unittest

class BasicTest(unittest.TestCase):
    def __init__(self, *args, **kwargs):
        print('BasicTest.__init__')
        super(unittest.TestCase, self).__init__(*args, **kwargs)

    def setUp(self):
        print('BasicTest.setUp')
        super(unittest.TestCase, self).tearDown()

    def tearDown(self):
        print('BasicTest.tearDown')
        super(unittest.TestCase, self).tearDown()


class ComplexTest(BasicTest):
    def __init__(self, *args, **kwargs):
        print('ComplexTest.__init__')
        super(BasicTest, self).__init__(*args, **kwargs)

    def setUp(self):
        print('ComplexTest.setUp')
        super(BasicTest, self).tearDown()

    def tearDown(self):
        print('ComplexTest.tearDown')
        super(BasicTest, self).tearDown()
Run Code Online (Sandbox Code Playgroud)

2)test.py

import unittest
import test_framework

class TestValueFunctions(test_framework.ComplexTest):
    def __init__(self, *args, **kwargs):
        print('TestValueFunctions.__init__')
        super(test_framework.ComplexTest, self).__init__(*args, **kwargs)

    def setUp(self):
        print('TestValueFunctions.setUp')
        super(test_framework.ComplexTest, self).tearDown()
        self.value = 4711

    def tearDown(self):
        print('TestValueFunctions.tearDown')
        super(test_framework.ComplexTest, …
Run Code Online (Sandbox Code Playgroud)

python constructor testcase

9
推荐指数
1
解决办法
1万
查看次数

为什么webpack 4会生成名为0.js,1.js 2.js的文件?

在尝试从webpack 3切换到4时,我使用了简化的配置,如以下摘录所示。构建成功,但是生成了一些文件名只有一个数字的块,我似乎无法理解为什么?

0.css   12.5 KiB                             0  [emitted]
 0.js    312 KiB                             0  [emitted]
 1.js   90.3 KiB                             1  [emitted]
 2.js    109 KiB                             2  [emitted]
 3.js    647 KiB                             3  [emitted]
 4.js   1.14 MiB                             4  [emitted]
5.css   33.5 KiB                             5  [emitted]
 5.js   1.56 MiB                             5  [emitted]
6.css  602 bytes                             6  [emitted]
 6.js   92.8 KiB                             6  [emitted]
Run Code Online (Sandbox Code Playgroud)

组态:

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = function (env, options) {
    const PRODUCTION = options.mode === 'production';

    return {
        entry: {
            common: ['libA', 'libB', …
Run Code Online (Sandbox Code Playgroud)

webpack

9
推荐指数
1
解决办法
2187
查看次数

使用 tsc 运行类型检查某些文件时如何忽略某些文件

我想在使用 tsc 对某些文件进行类型检查时忽略某些文件,并且无法弄清楚这是如何在 TypeScript 中完成的。eslint 或 flow 之类的工具允许在源文件中使用特殊注释来控制编译器。

typescript

9
推荐指数
1
解决办法
9028
查看次数

如何在python源代码中配置pylint

是否可以在python源代码本身中禁用某些pylint错误/警告?

python pylint suppress-warnings

8
推荐指数
3
解决办法
6160
查看次数

在生成的webpack 4代码中,"/*!没有发现静态导出*/"是什么意思?

webpack4经常生成以注释开头的模块/*! no static exports found */.这是一个警告和/或它实际意味着什么?

webpack

8
推荐指数
1
解决办法
5952
查看次数

esbuild 是否提供类似于 webpack 中的resolve.alias 选项的功能?

esbuild 是否提供类似于 webpack 中的resolve.alias 选项的功能?

const path = require('path');
    
module.exports = {
  //...
  resolve: {
    alias: {
      Utilities: path.resolve(__dirname, 'src/utilities/'),
      Templates: path.resolve(__dirname, 'src/templates/'),
    },
  },
};
Run Code Online (Sandbox Code Playgroud)

现在,在导入时不要使用相对路径,如下所示:

import Utility from '../../utilities/utility';
Run Code Online (Sandbox Code Playgroud)

您可以使用别名:

import Utility from 'Utilities/utility';
Run Code Online (Sandbox Code Playgroud)

esbuild

8
推荐指数
2
解决办法
8492
查看次数

在 npm 中分发预构建的本机二进制文件

是否可以使用 npm 分发预构建的本机二进制文件,我在哪里可以找到有关此主题的任何文档?

binary native node.js npm

7
推荐指数
1
解决办法
2226
查看次数

eslint-如何为特定文件设置sourceType

eslint中有没有一种方法可以在文件内设置sourceType,类似于规则和环境设置?

就像是

/*eslint sourceType: "module"*/
Run Code Online (Sandbox Code Playgroud)

没有看到工作

javascript eslint

7
推荐指数
1
解决办法
684
查看次数

由于静态 publicPath 无法使用 webpack 动态导入

我喜欢使用importwebpack 3 中的命令动态导入块的能力。不幸的是,它似乎只能在资源位于服务器上相当静态的目录配置中时才能使用。

在我的环境中,html 页面在后端动态生成(假设http:/localhost/app)。所有其他资源(js、css、图像等)都在不同的目录中(比如http:/localhost/res),但另外res不是静态的,而是可以在后端动态更改。

只要我不使用任何动态导入,一切都会按预期工作,但是当尝试动态加载任何块时,这会失败,因为默认情况下 webpack 期望块在其中,http:/localhost/app而我无法使用,publicPath因为资源所在的 url 是动态的。

有没有办法(运行时)配置 webpack 以加载相对于当前资源所在路径的资源。例如,如果page1.js位于 中的块http:/localhost/resA动态加载块,sub1.js他应该在http:/localhost/resA而不是 中查找它http:/localhost/app

生成的 html 将在以下位置可用http:/localhost/app/page1

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <script src="http:/localhost/resA/page1.bundle.js"></script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

文件src/page1.js将可用为http:/localhost/resA/page1.bundle.js

import(/* webpackChunkName: "sub1" */ './sub1').then(({MyClass}) => {/*...*/});
Run Code Online (Sandbox Code Playgroud)

文件src/sub1将可用为http:/localhost/resA/sub1.bundle.js

export class MyClass {};
Run Code Online (Sandbox Code Playgroud)

文件`webpack.config.js':

const path = require('path'); …
Run Code Online (Sandbox Code Playgroud)

import dynamic webpack

7
推荐指数
1
解决办法
9279
查看次数