Articles of Linux操作系统

忽略.gitignore中的符号链接

可以告诉Git忽略符号链接吗? 我正在使用混合的Linux / Windows环境,正如您所知,符号链接在两者之间的处理方式非常不同。

Vim:Mac与Linux ^ M问题

我使用Vim和GIT在Linux / Ubuntu机器上开发我的项目。 在过去,我曾经使用Windows,这意味着行结束是DOS格式。 现在转到Linux后,我总是看到在行结尾的^ M混乱/恼人的字符。 这里有些人: 如何将^ M换行转换为在vim中打开的文件中的“正常”换行符? build议我应该做一个查找/replace或使用像dos2unix工具。 这些都是很好的build议,但是对于一个版本控制的项目来说,这意味着我必须在更改后为这些文件添加不必要的提交,无论如何,这是一项艰巨的任务,不值得花费时间。 所以: 无论如何要让Vim容忍这个? 也就是说,如果该文件是DOS行结束的,它保持这样,并使用新的换行符的格式,等等。

C ++ / LapackE代码在Windows上编译好,但是相同的代码在Linux上编译失败

使用LapackE和MPI库编写的C ++代码可以在使用GNU C ++ 4.9.2的Windows上编译和运行。 将该代码迁移到Linux(CentOS)服务器无法编译 ! Linux机器上的GNU C ++是4.4.7。 在这两种情况下,我使用了相同的LapackE头文件。 MPI在Linux机器上运行良好。 在检查两台机器上的预处理器输出文件后,我可以将错误消息与以下情况联系起来:在_Complex中replace原始代码中的复杂声明。 下面是一个复杂的dynamic数组HAMILTONIAN在Linux上编译时遇到问题的声明示例: 在正宗的源头上: lapack_complex_double * HAMILTONIAN; 在WINDOWS预览。 文件(效果很好): _lapack_complex_double * HAMILTONIAN; 在LINUX预览版中。 FILE(无法编译): double _Complex * HAMILTONIAN; 这可能是与GCC的不同版本有关的问题吗? 我已经尝试了#define _Complex复杂的,但最终没有帮助。 一些报告C99 _Complex和C ++复杂的互操作性的问题 : 可能类似的问题 。 请帮忙。 谢谢!

是否有一个多操作系统蓝牙库?

我在一个随意的devise阶段,我有硬件devise和蓝牙通信。 我想用一个程序来支持OSX,Windows和Linux。 我发现bluecove库,但其最后的版本是2008年,所以我不知道是否过时或支持BT 4.0。 最后,如果不可能,那么我想我会为它创build个人解决scheme。 到目前为止,我只find了C#的32feet 。 有什么build议么?

如何提高编译SSE和AVX的性能?

我的新电脑有一个酷睿i7 CPU,我正在运行我的基准,包括使用AVX指令的更新版本。 我已经安装了Visual Studio 2013来使用一个更新的编译器,因为我的最后一个无法完全编译完整的SSE SIMD操作。 下面是我的一个基准testing(MPMFLOPS)中使用的一些代码,以及使用的编译和链接命令。 第一个命令使用SSE指令运行testing。 当xtra小于或等于16时,基准testing产生24.4 GFLOPS。 CPU运行频率为3.9 GHz,所以每个周期的计算结果为6.25,而最大值为4倍和4倍。 将xtra增加到大于16,产生2.6 GFLOPS。 将词汇降低到更低的值会使速度有所不同。 /* Visual Studio 2013 C/C++ Optimizing Compiler Version 18.00.21005.1 for x64 cl /O2 /Oi /MD /W4 /TP /EHsc /Zi /Fa /c mflops.c cl /O2 /Oi /MD /W4 /TP /EHsc /Zi /Fa /arch:AVX /c mflops.c link /LARGEADDRESSAWARE mflops.obj CPUasm.obj asmtimeavx.obj BUFFEROVERFLOWU.LIB […]

variables的值存储在C中

在以下代码段中: int func() { int a=7; return a; } 代码段中值7存储在可执行文件中吗? 或者它是在数据段还是在代码段? 答案取决于操作系统还是编译器?

USB设备检测 – Windows&Linux(FT232R)

如何枚举和识别(获得PID,VID和串行)FT232R芯片在Windows和Linux。 我需要:1.在程序启动时枚举已插入的设备2.检测USB设备的插入3.获得PID,VID,串行 我需要在Windows和Linux中执行此操作。 我知道有Windows和Linux的libusb,但我没有那么多的USB使用经验。 代码示例将是最好的。

在C获得terminal宽度?

我一直在寻找一种方法来获取我的C程序中的terminal宽度。 我一直在提出的是: #include <sys/ioctl.h> #include <stdio.h> int main (void) { struct ttysize ts; ioctl(0, TIOCGSIZE, &ts); printf ("lines %d\n", ts.ts_lines); printf ("columns %d\n", ts.ts_cols); } 但每次我尝试我得到 austin@:~$ gcc test.c -o test test.c: In function 'main': test.c:6: error: storage size of 'ts' isn't known test.c:7: error: 'TIOCGSIZE' undeclared (first use in this function) test.c:7: error: (Each […]

命令行程序创build网站截图(在Linux上)

什么是一个很好的命令行工具来创buildLinux上的网站截图? 我需要自动生成网站的屏幕截图,无需人工交互。 我发现的唯一工具是khtml2png ,但我不知道是否有其他人不基于khtml(即有良好的JavaScript支持,…)。

debugging在客户框中生成的核心文件

我们通过在客户的机器上运行我们的软件来获取核心文件。 不幸的是,因为我们一直使用-O2 进行编译而没有debugging符号,这导致了我们无法弄清楚为什么会崩溃的情况,我们修改了构build,现在他们生成了-g和-O2。 然后,我们build议客户运行-g二进制文件,以便更易于debugging。 我有几个问题: 从Linux发行版(而不是在Dev中运行的发行版)生成核心文件时会发生什么情况? 堆栈跟踪是否有意义? 在Linux或Solaris上有没有好的书籍用于debugging? 面向对象的例子会很棒。 我正在寻找真实的例子,找出为什么一个例程崩溃,作者如何解决问题。 从中级到高级的东西会更好,因为我已经这样做了一段时间了。 一些组装也会很好。 这是一个崩溃的例子,要求我们告诉客户得到一个-g版本。 的二进制文件: Program terminated with signal 11, Segmentation fault. #0 0xffffe410 in __kernel_vsyscall () (gdb) where #0 0xffffe410 in __kernel_vsyscall () #1 0x00454ff1 in select () from /lib/libc.so.6 … <omitted frames> 理想情况下,我想解决为什么确切的应用程序崩溃 – 我怀疑这是内存腐败,但我不是100%确定。 远程debugging是严格禁止的。 谢谢