小编Nau*_*ile的帖子

Windows在运行时删除make可执行文件.为什么?

我正在尝试运行一些使用的代码make.我已经在我的64位Windows 7机器上下载并安装了MinGW(标准32位)和MinDM的TDM-GCC风格.

当我在管理员模式下运行make(即mingw32-make.exe),我收到以下错误消息:

Windows无法访问指定的路径或文件.您可能没有相应的权限来访问该项目.

奇怪/可怕的部分是,在运行时,它会立即删除exe文件.

我使用Microsoft(R)File Checksum Integrity Verifier V2.05按照评论中的建议运行了校验和SHA1:

C:\path\to\folder>fciv.exe -sha1 mingw32-make.exe
//
// File Checksum Integrity Verifier version 2.05.
//
c8ae5c780ab7bed652883d6443b5bfe5e23d30c9 mingw32-make.exe
Run Code Online (Sandbox Code Playgroud)

我不明白这个输出意味着什么,但也许它对某人有帮助.

笔记:

  1. 无论文件位于我的电脑上,都会发生这种情况.
  2. 此行为是特定于该make程序(其他如gfortran,gcc似乎工作正常)
  3. 重命名文件没有区别.
  4. 我是电脑的管理员
  5. 从资源管理器或命令行运行程序时的行为相同.
  6. 我的防病毒程序(Avast)在扫描时没有检测到文件的任何问题.
  7. 我从这个SourceForge页面获得了MinGW安装文件.
  8. 我从这个页面获得了TDM-GCC Web安装程序.
  9. 文件大小为219,662字节(来自主MinGW和TDM-GCC包)
  10. 我已经从命令行运行make,我已经通过Run as Administrator在上下文菜单中选择启动了命令提示符.
  11. 我也尝试make选择Run as Administrator何时选择它.
  12. mingw32-make发生此行为时运行该命令.我也尝试将它重命名为类似的结果makefoo使用相同的结果.
  13. MinGW第一次发生这种情况时,它删除了原始文件,并使用该 …

windows makefile gnu-make

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

在CMake中,调用find_package后如何找到导入的目标?

CMakefind_package文档说:

当找到包时,将通过包本身记录的变量和导入目标提供特定于包的信息。

ABCD如果我有一个可以使用的库find_package,前提是 CMake 可以找到合适的ABCDConfig.cmake文件。abcd10 abcdExtra然后,它创建如上所述的导入目标(例如) 。

然后我可以像这样编译和链接这些库:

target_include_directories(mytarget abcd10 abcdExtra)
target_link_libraries(mytarget abcd10 abcdExtra)
Run Code Online (Sandbox Code Playgroud)

问题是,根据其他人编写的该文件的内容,ABCDConfig.cmake目标的名称几乎可以是任何内容(例如abcdlib,,,,...),即使它可能是完全相同的库!abcdX64FoobarABCD

我已经浏览了大部分文档,但我看不到任何获取导入目标的方法,因此看起来我必须知道所有常见导入目标名称是什么,并单独检查它们。这对我来说似乎有点不合理。我在这里错过了什么吗?ABCDConfig.cmake在不知道这些细节的情况下,如何加载和链接不同包管理器(甚至编写自己文件的人)生成的库?

build package-managers cmake package

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

我可以在python中保存文本文件而不关闭它吗?

我正在编写一个程序,我希望能够在程序完成之前查看日志文件.我注意到,在python(2.7和3)中,file.write()没有保存文件,file.close()确实如此.我不想创建具有唯一名称的一百万个小日志文件,但我希望能够在程序完成之前查看更新的日志文件.我怎样才能做到这一点?

现在,要清楚我正在使用Ansys Workbench编写脚本(试图批量运行一些CFX).这是一个指向我正在谈论的教程的链接.它们似乎已经包装了python,通过运行脚本,我可以将命令发送到各个模块.当脚本运行时,屏幕上没有控制台,它似乎正在吃掉所有print语句,因此我可以通过文件报告正在发生的事情的唯一方法.此外,我不想带一个控制台窗口,因为最终我将以批处理模式运行程序(无接口).但模拟需要很长时间才能运行,我不能等待程序完成,然后再检查发生了什么.

python python-2.7

4
推荐指数
2
解决办法
9021
查看次数

为什么允许多变量返回语句?

简单地说,为什么以下代码编译?

#include<iostream>

int foo(){
    return 0,1;
}

int main(){
    int a,b = foo();
    std::cout << a << " " << b << std::endl;
    std::cout << foo();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用64位Window的机器,并使用Dev-C++进行编译(使用MinGW GCC 4.5.2 32位编译器).

此代码打印以下输出:

2686824 1
1
Run Code Online (Sandbox Code Playgroud)

我强烈怀疑包含的值a是存储在未初始化变量中的通常垃圾.

这个问题中可以清楚地看出,从函数中返回多个值并不是工业中常见的做法,并且在学术机构教授的编程课程中肯定会受到劝阻和惩罚.

那它为什么有效呢?由于我已经成熟为程序员,我已经意识到编译器错误的难以置信的价值,它比链接器或运行时错误更容易理解,并且显然比错误更好.

为了清楚起见,我更感兴趣的是为什么从语言设计的角度来看这是允许的,而不是编译器如何做其事情的技术细节(除非,在这种情况下,实现现实或技术后果使其变得困难/无法检测/管理多个return变量).

是否有一些深奥的案例,其中多变量return法令被认为是有用的?

c++

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