小编sh0*_*731的帖子

编译:版本"go1.9"不匹配go工具版"go1.9.1"

当我试图运行我得到的示例helloworld代码时,我收到此错误.

compile: version "go1.9" does not match go tool version "go1.9.1"
Run Code Online (Sandbox Code Playgroud)

我的电脑已经去了1.9.1.错误意味着什么,我该如何解决?

go

16
推荐指数
6
解决办法
7176
查看次数

交叉编译术语——构建、主机和目标

我看到很多冲突信息,希望得到一些澄清。\n构建主机目标

\n\n
\n

构建知道三个系统名称:您正在构建的机器(构建)、您正在构建的机器(主机)以及 GCC 将为其生成代码的机器(目标)。配置 GCC 时,可以使用 --build=、--host= 和 --target= 指定它们。

\n
\n\n

实际上,我不明白上面定义中的主机目标之间有什么区别。

\n\n

其他一些页面说

\n\n
\n

\xe2\x80\x98host\xe2\x80\x99 是您用来编译代码的机器(或体系结构、或平台);\n \xe2\x80\x98target\xe2\x80\x99 是机器(或架构或平台),旨在运行代码。

\n
\n\n

这对我来说很有意义,但在这个解释中,主机总是与构建相同吗?我很困惑。

\n\n

就我而言,我的配置是让编译器 (GCC) 在 x86_64 计算机上运行,​​而二进制可执行文件在 ARM 上运行。程序是用C语言编写的,所以编译器是GCC。

\n\n
   ./configure --build=x86_64 --host=x86_64 --target=arm-linux-gnueabihf\n    make\n    make install\n
Run Code Online (Sandbox Code Playgroud)\n\n

听起来像\nbuild,主机都是x86_64,目标是arm。那是对的吗?

\n\n

我正在编译自己的嵌入式程序,该程序在 Jenkins 机器(x86_64)上运行。嵌入式程序运行在基于ARM的机器上。

\n

gcc cross-compiling

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

如何在python单元测试中模拟特定文件的存在?

我正在为 Python 中的嵌入式软件代码编写单元测试。

其中一个文件需要特定的文件才能存在。(例如“/dir_name/file_name.txt”)否则会引发错误。

通常,这个文件存在于硬件设备上,我的 python 代码读取这个文件。为 python 代码编写单元测试时,如何模拟文件的存在?

tempfile.mkstemp()似乎没有生成我想要的确切路径/文件名,即/dir_name/file_name.txt. 它总是添加一些随机字母。

这是Python3.4。是否有可能实现这一点unittest.mock

python unit-testing nose python-unittest

6
推荐指数
1
解决办法
2228
查看次数

直接访问类属性是否比通过 getter 函数获取值更快?

我在python中嵌入了代码。我需要访问一个对象的属性。

是不是做得objectA.attribute_xobjectA.get_attribute_x()

从面向对象的角度来看,使用 getter 似乎是正确的做法。但是哪种方式在计算上更便宜/更快?

python python-3.x

6
推荐指数
1
解决办法
623
查看次数

具有 try/except 的函数的 Python 单元测试

我有一个具有 try/except 的函数,如下所示:

def func_A():
  try:
       # do some stuff
  except Exception as e:
     log.error("there was an exception %s", str(e))
Run Code Online (Sandbox Code Playgroud)

我想为此编写一个单元测试func_A() 更重要的是,我想确保

  • A内部没有捕获异常

try/except只是为了安全。除非有错误,否则 A 内不应该抛出异常(尽管它会被 捕获try/except),这就是我想用我的单元测试验证的内容。

单元测试捕获抛出并捕获异常的情况的最佳方法是什么?

python unit-testing

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

如何在python的请求库上强制超时(包括DNS查找)

Python的请求库仅支持连接超时并阅读 http://docs.python-requests.org/en/master/user/advanced/#timeouts

当DNS查找需要很长时间时,无法强制超时.我想在超过X秒完成GET请求(包括DNS,连接和读取)时触发超时.

请注意,我不能使用基于信号的方法,因为它只适用于主线程.

我正在寻找一个优雅的解决方案.

python-3.x python-requests

6
推荐指数
1
解决办法
539
查看次数

python 3.4中的tracemalloc

我正在尝试使用Python的tracemalloc模块。输出如下所示,这不是超级有用。我display_top从这里的api文档复制了函数:https : //docs.python.org/3/library/tracemalloc.html#tracemalloc.Statistic.traceback

 #1: collections/__init__.py:366: 85.6 KiB
  exec(class_definition, namespace)

 #2: python3.4/ast.py:55: 83.9 KiB
   return tuple(map(_convert,
Run Code Online (Sandbox Code Playgroud)

我真正看到的是这些函数在我的应用程序中的何处被调用。所以,我真的很想看看最旧的框架而不是最新的框架(<---我在这里吗?)

我这样做了tracemalloc.start(25),它最多可以存储25帧。但是,如果我检查len(stat.traceback),它是1!所以我只能打印最近的一帧,不是那么有用...

def display_top(self, snapshot, group_by="lineno",  limit=_NUM_MEMORY_BLOCKS):
    snapshot = snapshot.filter_traces((
        tracemalloc.Filter(False, "<frozen importlib._bootstrap>"),
        tracemalloc.Filter(False, "<unknown>"),
    ))
    top_stats = snapshot.statistics(group_by)

    for index, stat in enumerate(top_stats[:limit], 1):
        # Ideally, I want to print all frames in traceback. 
        # But length of the traceback is somehow always 1 !!
        frame = stat.traceback[0] 
        # replace "/path/to/module/file.py" with "module/file.py"
        filename = …
Run Code Online (Sandbox Code Playgroud)

python memory-leaks python-3.x

5
推荐指数
1
解决办法
424
查看次数

如何在Makefile中编写“安装”目标

我是新手Makefile,喜欢installMakefile. 我的Makefile将被另一个人Makefile这样调用:

DESTDIR=$(DIR_A) BINDIR=/dir_b make -C $(CURDIR)/xxxx/yyy all
Run Code Online (Sandbox Code Playgroud)

where/xxxx/yyy是 myMakefile所在的位置。

Makefile将生成 2 个我喜欢安装的二进制文件,即通过安装,我的意思是将这两个二进制文件复制到特定目录 ( BINDIR) 并使它们可执行。

install如果我的 2 个二进制文件是在文件夹中生成的,那么在这种情况下我应该如何编写目标/aaaa/bbbb/bin

c makefile

5
推荐指数
1
解决办法
5457
查看次数

golang中未导出结构中的导出字段

例:

type myType struct {
    foo    []float64
    Name   string
}
Run Code Online (Sandbox Code Playgroud)

myType未导出,但导出其中的Name字段.

这样做有意义吗?这被认为是一种不好的做法吗?

我有这样的东西,编译得很好.Name如果我创建一个导出的数组,我可以访问该字段myType

var MyArray []myType = {... some initialization }

fmt.Println(MyArray[0].Name) // Name is visible and it compiles
Run Code Online (Sandbox Code Playgroud)

struct go

5
推荐指数
1
解决办法
3253
查看次数

MBRFormat 似乎不是其文件系统的有效卷名

我使用的是 macOS Mojave 10.14.6。我正在尝试将我的 USB 重新格式化为 FAT。我收到此错误MBRFormat does not appear to be a valid volume name for its file system。这是什么意思以及如何解决?为什么文件系统显示“无”?

root$ diskutil info /dev/disk5
   Device Identifier:         disk5
   Device Node:               /dev/disk5
   Whole:                     Yes
   Part of Whole:             disk5
   Device / Media Name:       Cruzer Facet

   Volume Name:               Not applicable (no file system)
   Mounted:                   Not applicable (no file system)
   File System:               None

   Content (IOContent):       GUID_partition_scheme
   OS Can Be Installed:       No
   Media Type:                Generic
   Protocol:                  USB
   SMART Status:              Not Supported

   Disk Size:                 8.0 …
Run Code Online (Sandbox Code Playgroud)

usb-drive reformat fat32

5
推荐指数
2
解决办法
4685
查看次数