小编iCa*_*arn的帖子

我得到"lapack.h:没有这样的文件或目录",虽然我安装了liblapack-dev

我使用Synaptic安装了liblapack-dev及其依赖项,并将其包含<lapack.h>在我的代码中.

如果我尝试像这样编译我的程序......

mpicc program.c -llapack -o output
Run Code Online (Sandbox Code Playgroud)

...我收到以下错误:

program.c:4:20: fatal error: lapack.h: No such file or directory 
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我已经花了几个小时搜索解决方案,但没有任何帮助.

我正在使用Linux Mint,但我在最新版本的Ubuntu上尝试了相同的东西,它仍然无法正常工作.当我尝试从我的程序中"消除"MPI并使用gcc编译时,同样的事情.

c lapack

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

使用产量的函数有多少内存?

我无法理解yield关键字.
我理解程序执行时会发生什么影响,但我真的不明白它使用了多少内存.

我将尝试用例子来解释我的怀疑.
假设我们有三个功能:

HUGE_NUMBER = 9223372036854775807

def function1():
    for i in range(0, HUGE_NUMBER):
        yield i

def function2():
    x = range(0, HUGE_NUMBER)
    for i in x:
        yield i

def function3(file):
    with open(file, 'r') as f:
        dictionary = dict(csv.reader(f, delimiter = ' '))
    for k,v in dictionary.iteritems():
        yield k,v
Run Code Online (Sandbox Code Playgroud)

如果我迭代第一个函数返回的生成器,那么巨大的范围是否实际存储在内存中?

第二个功能怎么样?

如果我迭代第三个函数返回的生成器,那么我的程序会使用更少的内存(而不是仅仅创建该字典并直接迭代它)吗?

python memory yield generator

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

如何在BackgroundWorker执行某些操作后正确隐藏按钮并显示它?

这是我到目前为止所尝试的:

  1. 放入button.Visible = false我的表单的初始化程序,并button.Visible = true结束我的ba​​ckgroundWorkers的DoWork事件.
    这会导致程序在BackgroundWorker完成其工作后冻结.
    我不明白为什么.

  2. 放入button.Visible = false我的表单的初始化程序并button.Visible = true在我的backgroundWorker1.RunWorkerAsync()调用之后.
    这不能正常工作,因为它在BackgroundWorker开始工作后立即显示按钮.
    我明白为什么会这样.

  3. button.Visible = falsedoneEvent = new AutoResetEvent(false)入我的窗体的初始化,然后把doneEvent.WaitOne()button.Visible = true我的后backgroundWorker1.RunWorkerAsync()调用.
    这样,一切正常,除了我的表单中的ProgressBar停止正常工作(直到完成所有工作才显示进度).
    我可能有一个直观的想法,为什么会发生这种情况,但我真的不明白它,我不知道如何解决它.

c# backgroundworker winforms

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

标签 统计

backgroundworker ×1

c ×1

c# ×1

generator ×1

lapack ×1

memory ×1

python ×1

winforms ×1

yield ×1