小编Bri*_*erg的帖子

MATLAB:是否有可能在本机结构(单元格,结构等)上重载运算符?

我正在使用单元格管理我正在处理的一些东西中的数据.我希望能够做到这样的事情:

A = cellfun( @(X)( randn( 5,5 ) ), cell( 5,1 ), 'UniformOutput', 0 );
B = cellfun( @(X)( randn( 5,5 ) ), cell( 5,1 ), 'UniformOutput', 0 );
%#
%# Each of the following would fail if cell member dimensions
%# don't match up
%#
%# matrix sums for each cell entry
%# C = A + B;
C = cellfun( @(X,Y)( X + Y ), A, B, 'UniformOutput', 0 );
%#
%# direct/hadamard product
%# D = A …
Run Code Online (Sandbox Code Playgroud)

matlab arithmetic-expressions operator-overloading cell

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

什么是'linkonce'部分

什么是"linkonce"部分,以及额外的荣誉,它与comdat部分有何不同?

为了清楚起见,我熟悉comdat部分的工作原理,它们是如何使用的等等.在谷歌搜索中,linkonce几乎只在论坛中讨论,其中假定该部分的含义/意图/目的已经相当清楚.

c++ linker

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

是否可以静态链接共享对象?

我的问题与这个问题不一样.

我正在开发一个带有独立二进制文件的项目,该项目没有动态/外部链接,并且在*nix环境中运行.

我正在尝试使用更新的工具集进行构建,但现在无法使用旧工具集中提供的某些静态库 - 例如,此工具集中未提供提供_start的crt库.

我一直在挖掘供应商工具集提供的文件,并从crt库中找到了我需要的符号的共享对象(例如,_start,_fini等),但我不确定是否有一种直接的方式来静态链接将对象共享为二进制文件,并进一步使该二进制文件可执行.

简短版本:非共享对象二进制文件是否可以与共享对象静态链接,而结果不会成为另一个共享对象?

shared-libraries dynamic-linking static-linking

6
推荐指数
2
解决办法
9116
查看次数

有没有一种有效的方法来进行"连续"自动对焦?

我正在使用相机开发一个Android应用程序,而且我发现的唯一聚焦图像的方法需要使用内置的自动对焦.当你想要拍照时,它的功能很棒,但是当你处理视频时,这是另一个故事.

有没有办法重复调整焦点而不必完全重新设置当前焦点?

camera android focus

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

在共享库中混合PIC和非PIC对象

这个问题关系到这一个,以及它的答案.

我刚刚发现了一些正在构建的构建中的丑陋.情况看起来有点像以下(用gmake格式编写); 请注意,这特别适用于sparc和x86硬件上的32位内存模型:

OBJ_SET1  := some objects
OBJ_SET2  := some objects

# note: OBJ_SET2 doesn't get this flag
${OBJ_SET1} : CCFLAGS += -PIC

${OBJ_SET1} ${OBJ_SET2} : %.o : %.cc
  ${CCC} ${CCFLAGS} -m32 -o ${@} -c ${<}

obj1.o       : ${OBJ_SET1}
obj2.o       : ${OBJ_SET2}
sharedlib.so : obj1.o obj2.o
obj1.o obj2.o sharedlib.so :
  ${LINK} ${LDFLAGS} -m32 -PIC -o ${@} ${^}
Run Code Online (Sandbox Code Playgroud)

显然,它可以在共享对象中混合使用和不使用PIC编译的对象(这已经使用了多年).我不太了解PIC是否知道这是一个好主意/聪明,而我的猜测是在这种情况下它不是必需的,而是它正在发生,因为有人不在乎找到正确的方法来做到这一点关于构建的新东西.

我的问题是:

  1. 这样安全吗?
  2. 这是不是一个好主意
  3. 结果会发生什么样的潜在问题
  4. 如果我将所有内容切换到PIC,是否有任何非显而易见的陷阱我可能需要注意.

compiler-flags sunstudio

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

GNU make:定时构建,是否可能有一个目标,其配方在所有目标完成后执行

我的问题类似于this onethis one

从本质上讲,类似以下内容是我正在寻找的东西——或者是一个相当干净的技巧来实现它:

GET_TIMESTAMP  = $(shell perl -e 'print time()')
START_TIME    := ${GET_TIMESTAMP}

all: T1 T2 ... TN

T1:
T2:
...:
TN:

#...

timer:
  @perl -e 'printf( "Loaded makefiles in %ds, build completed in %ds\n", $ARGV[1] - $ARGV[0], $ARGV[2] - $ARGV[1] );' ${START_TIME} ${LOAD_COMPLETE} ${GET_TIMESTAMP}

.ATEND: timer

LOAD_COMPLETE := ${GET_TIMESTAMP}
Run Code Online (Sandbox Code Playgroud)

...可以通过多种方式启动:

~ gmake all
(...)
  Loaded makefiles in 8s, build completed in 93s
~ gmake T2 T3 T4
(...)
  Loaded makefiles in 8s, build completed …
Run Code Online (Sandbox Code Playgroud)

gnu-make

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

替代nvidia-smi来衡量GPU利用率?

在使用某些工具和/或开发库/工具时,nVidia放弃了对所有非quadro和tesla卡的支持.我有两个GTX 590,当我使用nvidia-smi时,大多数可查询字段返回N/A,因为它们不再支持此卡.

还有其他工具可以收集这些信息吗?使用SDK查询此信息是否可行/直接?

gpu nvidia performance-testing

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

GNU 汇编器中的本地标签;gdb 打印回溯,就像标签是函数一样

两段示例代码;首先是一些调用程序集的 C++ 代码:

/* test1.cc */
#include <stdio.h>

extern "C" void blah();
extern "C" void stuff() {
  printf( "This is a test\n" );
}

int main( int argc, char *argv[] ) {
  blah();

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

...然后大会:

.file "test2.s"
.text
.globl blah, stuff
.type blah,@function
.type stuff,@function
.align 16

blah:
  /* normal function preamble */
  pushl %ebp
  movl %esp, %ebp

label1:
  call stuff

  leave
  retn
Run Code Online (Sandbox Code Playgroud)

内置:

as -g --32 test2.s -o test2.o
clang++ -m32 -g test1.cc -c
clang++ -m32 -g …
Run Code Online (Sandbox Code Playgroud)

assembly gdb gnu-assembler backtrace debug-symbols

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

git apply:忽略非前导/尾随空格

我想将提交分成两个提交:内容更改和空白更改,但我发现的每个解决方案仅适用于一行只包含空格更改.

在下面是一个不相关的空格更改和一个新的参数添加到一个函数:

$ git diff -U0
diff --git a/blah.h b/blah.h
--- a/blah.h
+++ b/blah.h
@@ -1, +1 @@
-void  blah();
+void blah(int x);
Run Code Online (Sandbox Code Playgroud)

我发现的最好的是:

$ git diff -w --word-diff-regex=[^[:space:]]
diff --git a/blah.h b/blah.h
--- a/blah.h
+++ b/blah.h
@@ -1, +1 @@
void blah({+int x+});
Run Code Online (Sandbox Code Playgroud)

...但据我所知git-apply,不能将其视为输入.

我几乎让自己确信这可能是不可能的,认为git需要上下文信息来知道它是否是一个有意义的变化,例如:

  • 在文字字符串内(特别是如果它跨越多行)
  • 空白是否有意义(例如,makefile)

...但是只要你不引入任何其他变化(在相关行的某些邻域中),git就会高兴地忽略所有空白变化.

我确信还有其他工具可以做我想做的事情(或接近它的东西),虽然在这种情况下我不能只下载任何我想要解决的问题.尽管如此,请随意发布该条带的答案,因为它们可能在将来帮助其他人.

git whitespace

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

为什么makefile有时会将'true <filename>'作为构建脚本的一部分?

例如:

# Some stuff

all: some dependencies
    @$(CC) -o foo.o foo.c
    @true foo.o
    @some other operation
Run Code Online (Sandbox Code Playgroud)

"真正的foo.o"系列的目的是什么?

makefile

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