我有一个编译和运行在centos4.8上的程序。 我已经下载并将cryptopp 5.6.2编译成静态库。 在运行testing程序时,我会遇到一个分段错误 CTR_Mode< AES >::Encryption e; e.SetKeyWithIV( key, key.size(), ctr ); // segmentation fault here 我可以在一个小程序中重新创build。 如果我与libpthread.a链接,我得到了错误,如果我没有链接,程序按预期运行。 我的应用程序取决于与pthread连接,所以我希望find一种方法来编译兼容的cryptopp。 谢谢
我无法理解这段代码: static int read_mem(int pm, u64 *map) { u64 aux = PAGE_SIZE * sizeof(*map); if (read(pm, map, aux) != aux) { pr_perror("Can't read pagemap file"); return -1; } 它实际上是从描述符pm读取一个内存页面,但我不明白为什么它使用一个U64作为缓冲区的地址。 我怎样才能得到已经阅读的内容? 我怎样才能打印出来或处理它?
我试图让开发环境用MPI和C编程。我查了一下,find了Eclipse Parallel Tools Platform。 我遇到了很多错误的formsType 'MPI_Status' could not be resolved和其他从香草eclipse-ptp-keplerparsing错误。 我在Linux x86_64(Ubuntu 12.04.3 LTS)上使用Linux GCC Toolchain的helloworld MPI C示例。 也许值得注意的是:启动默认的“本地C / C ++应用程序”运行configurationLaunch failed. Binary not found Launch failed. Binary not found 任何帮助将不胜感激! 如果您不确定这个问题的解决scheme,欢迎就其他开发环境提出build议。 谢谢阅读!
我正在使用DirectFB(没有X,使用fbcon驱动程序(与vesafb)写入屏幕缓冲区)。 我可以做键盘input,但我想用我的鼠标(获取光标坐标/显示光标/点击事件) 有人可以给出示例代码或告诉我它是如何完成的? 我也需要GPM吗? 我尝试了基于directfb的mplayer,并且没有启动GPM守护进程,鼠标正常工作。 我应该使用SDL还是DirectFB可以做我想要的?
当我们在32位编译我们的C ++应用程序时,一切都还好。 当我们将所有的东西移植到64位时,二进制文件的数量增加了一倍多! 当我们运行二进制文件时,只有一个运行,因为它占用了所有的RAM。 我们已经完成了所有的64位移植操作,以便编译成功。 但是,在运行时,内存消耗会达到极限。 它不会崩溃。 它只是运行,直到停止,并没有生成核心文件。 有没有人有什么build议,我应该开始调查呢? 我们的编译选项是: -D_linux _ -pthread -fexceptions -c -Wall -DSTL_HAS_DEFAULT_ARGS -DUsePthread -D_REENTRANT -Dx86_64 -DLINUX -g -O2 我们的Linux机器上的ulimit信息是: -bash-4.1$ ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 30405 max locked memory […]
如您所知,下载QT的主要来源是http://qt-project.org/downloads 。 在Qt 5.0之前,有一个Qt for Embedded Linux的链接,例如:qt-everywhere-opensource-src-4.8.5.tar.gz 我认为这是Qtopia的替代品。 另外,我认为“无处不在”意味着“embedded”。 我的假设是否正确? 如果我的假设是正确的,可以使用上面的各个版本而不是旧的Qtopia? 另一个问题是:我configurationQtopia静态构build库(使用默认共享),然后我build立它并成功安装它。 现在我在主机上我有Qtopia 4.3.5embedded式ARM软件,默认path如下:/usr/local/Trolltech/QtopiaCore4.3.5embedded-arm 问:为什么在/ bin目录下没有devise器程序? 我只有以下二进制文件:moc,qmake,rcc,uic然后我用QApplication和QLabel类写了一个典型的hello world Qt: #include <QApplication> #include <QLabel> int main(argc, char* argv[]) { QApplication app(argc, argv); QLabel Hello("Hello"); Hello.show(); return app.exec(); } 我编译这个代码与新安装的qmake,这是完全没问题的。 如果二进制的名称是qt_hello,我有以下输出: #文件qt_hello 用于GNU / Linux 2.6.32的ELF 32位LSB可执行文件ARM版本1(SYSV),dynamic链接(使用共享库),不会被去除 现在,当我将二进制文件移植到ARMembedded式设备板(使用闪存盘USB)并运行它时,我有以下输出: #./qt_hello加载共享库时出错:libQtGui.so.4:无法打开共享目标文件:没有这样的文件或目录。 基于错误消息,我想,我应该configuration尝试再次configurationQtopia -static选项。 我使用了下面的命令: ./configure -embedded arm -xplatform qws/linux-arm-g++ […]
我有兴趣find英特尔i7系列(i7 CPU 860 @ 2.80GHz)中二级高速caching的包容性/独特性。 在这里我find了两个与i7 CPU 860 @ 2.80GHz的CPU细节相关的链接 , 两者都是相互矛盾的 。 我很困惑,无法确定二级caching关于包容性/排他性的本质。 bit-tech说L2是包容性的,而cpu-world说L2是非包含性的。 如果有人提供一些见解或链接来帮助我弄清包含/排除二级caching的性质,那将是非常棒的。 有没有什么办法来找出二级caching的包容性/排他性(以编程方式或其他方式)?
我有一个关于debuggingc代码的问题。我做了研究,但是不能满足我。 我知道下面的命令: (gdb) x/x 'address' #show hexadecimal address (gdb) x/100s 'address' #show next 100 decimals (gdb) x/10b 0x0804846c-10 #show byte at 0x0804846c-10 (gdb) x/10b 0x0804846c+20 #show byte at 0x0804846c+20 (gdb) x/10x 0x0804846c show 10 addresses at 0x0804846c (gdb) x/10x $esp #show next 10 addresses at esp register 但是我想知道x/10x $esp – 50到底做了什么? 我拿到了吗? 这是对的吗? “在$ esp之前显示50个地址后,最多可达10个地址”如果你完全告诉我纠正我,我会感激的…… […]
我试图发送信号到一个POSIX线程从另一个进程(不是从创build该线程的进程。我做了什么用kill发送信号(…):: int trap_handle(pid_t child_waited ) 69 { 70 printf("%s, new value: %d, child_waited=<%ld>\n", __func__,g_var_x, child_waited); 71 int errno_ = -1; 72 errno_ = kill(child_waited, SIGUSR1); 73 //syscall(SYS_tgkill, -1, child_waited, SIGUSR1); 74 //errno_ = pthread_kill(child_waited, SIGUSR1); 75 if(0==errno_) 76 printf("Signal sent to thread: %ld\n", child_waited); 77 else 78 printf("pthread_kill failed: error:%d", errno_); 79 } 而在注册SIGUSR1的线程中: 230 […]
我发现Tcl的[file normalize $path]和C调用的pathparsingopen()如open()和realpath()之间的行为有所不同。 它围绕使用符号链接紧接着.. 设置:给定此目录结构(请注意, sidedir_link是到不同目录的链接): /tmp/fileA.txt /tmp/sidedir/fileA.txt /tmp/subdir/fileA.txt /tmp/subdir/sidedir_link -> /tmp/sidedir 当前目录是/tmp/subdir ,并且我创build了命令utils::realpath来作为对<stdlib.h>的C函数realpath()的Tcl调用。 这是成绩单。 前两个调用显示了如何解决一个符号链接。 最后两个显示了在处理紧跟在符号链接之后的行为上的差异。 wish% file normalize sidedir_link/fileA.txt /tmp/sidedir/fileA.txt wish% ::utils::realpath sidedir_link/fileA.txt /tmp/sidedir/fileA.txt wish% file normalize sidedir_link/../fileA.txt /tmp/subdir/fileA.txt wish% ::utils::realpath sidedir_link/../fileA.txt /tmp/fileA.txt 注意:不同的是/tmp/subdir/fileA.txt与/tmp/subdir/fileA.txt 。 具体来说, [file normalize $path]似乎词法parsing..通过删除path的前面部分,而C调用实际上解决了符号链接, 然后应用.. 如果符号链接是/some/location/far/far/away ,parsing的path将是/some/location/far/far/fileA.txt 。 我在Tcl文档,wiki或bug跟踪系统中找不到任何提及。 那么,这是一个Tcl错误? 一个C库的错误? 预期的行为? 我正在使用Tcl 8.4.9和Redhat 6(是的,有点落伍了…) 注意:我可以在Tcl 8.6.1中重现相同的行为 这很重要的原因是Tcl […]