Questions tagged «gnu»

该标签用于与GNU(“ GNU的非Unix”)项目提供的软件和工具有关的编程问题。




4
“ #define _GNU_SOURCE”意味着什么?
今天,我不得不使用该basename()函数,并且man 3 basename(这里)给了我一些奇怪的信息: 笔记 basename()有两种不同的版本- 上面描述的POSIX版本和GNU版本,其中一种 #define _GNU_SOURCE #include <string.h> 我想知道这#define _GNU_SOURCE是什么意思:它污染了我使用GNU相关许可证编写的代码吗?或者它只是用来告诉编译器,例如“ 嗯,我知道,这组函数不是POSIX,因此不是可移植的,但是我还是想使用它 ”。 如果是这样,为什么不给人们提供不同的标题,而不必定义一些晦涩的宏来获得一个函数实现或另一个实现呢? 有些东西也困扰着我:编译器如何知道与可执行文件链接的函数实现?它也使用这个#define吗? 有人给我一些指示吗?
152 c  posix  gnu 


20
如何在Windows上应用差异补丁?
有很多程序可以创建diff补丁,但是我花了很多时间尝试应用它。我正在尝试分发补丁,我从用户那里收到有关如何应用补丁的问题。因此,我试图自己弄清楚它,但发现自己毫无头绪,而且我能找到的大多数工具都是命令行工具。(我可以处理命令行,但是如果没有一个友好的,友好的GUI,很多人会迷路。因此,这样做对他们没有好处。) 我尝试使用TortoiseSVN。我有我要申请的补丁。我右键单击该补丁,TortoiseSVN子菜单下有一个选项为“应用补丁”。它所做的就是拉起一个空窗口。 所以我尝试打公开赛。它有两个选项:合并并应用统一差异。(幸运的是,补丁程序采用统一的diff格式。)但是apply选项只是简单地不起作用:它要求提供补丁程序和文件夹。不知何故,它忘记要求将补丁应用到该文件了!因此,TortoiseSVN不能正常工作。是否有基于Windows GUI的实用程序,该实用程序将获取补丁程序和文件并正确地应用它? 编辑:查看到目前为止的答复,似乎Tortoise仅在它是已版本化的文件的情况下才能正确执行。事实并非如此。我需要能够将补丁应用到不是来自SVN存储库的文件。我刚刚尝试使用Tortoise,因为我碰巧知道SVN使用diff,并且必须知道如何创建和应用它们。
136 windows  diff  gnu  patch 

6
如何在Mac OS 10.10+上使用GNU sed,不再支持'brew install --default-names'
在Mac OS 10.10.3下,我通过键入以下命令安装了gnu-sed: brew install gnu-sed --default-names 再次键入时,收到消息: 已安装gnu-sed-4.2.2 但是,即使在重新启动系统并重新启动终端之后,我仍然无法使用GNU版本的sed。例如: echo a | sed ’s_A_X_i’ 返回:替换命令'i'中的错误标志 我应该怎么做才能使GNU版本正常工作?这是$ PATH变量中的路径。 /Users/WN/-myUnix /opt/local/bin /opt/local/sbin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /Applications/calibre.app/Contents/MacOS /opt/ImageMagick/bin /usr/texbin 很抱歉,我的问题似乎很明显,但是我自己学习shell脚本,还不太了解如何安装UNIX程序。在Mac上使用GNU兼容命令(在这种情况下是sed,但不久以后我还将需要其他命令)的任何帮助而不会造成损坏或不必要的混乱的任何帮助将不胜感激。
95 macos  bash  sed  homebrew  gnu 

7
如何导出私有/秘密ASC密钥以解密GPG文件
背景:我的老板曾尝试向我导出带有公共和私有部分的ASC密钥,但是每当我得到文件时,私有部分就永远不会加载,也不会解密任何文件。 我们尝试使用以下方法导出ASC密钥: Windows应用程序Kleopatra 2.1(包含在gpg4win中) Windows应用程序GNU Privacy Assistant(包含在gpg4win中) Error: "Decryption failed. Secret Key Not available." 您如何正确导出秘密或私有asc密钥来解密gpg文件?

1
grep regex空格行为
我有一个文本文件,其中包含以下内容: 12,34 EUR 5,67 EUR ... “ EUR”之前有一个空格,我忽略了0,XX EUR。 我试过了: grep '[1-9][0-9]*,[0-9]\{2\}\sEUR' => didn't match ! grep '[1-9][0-9]*,[0-9]\{2\} EUR' => worked ! grep '[1-9][0-9]*,[0-9]\{2\}\s*EUR' => worked ! grep '[1-9][0-9]*,[0-9]\{2\}\s[E]UR' => worked ! 有人可以解释我请,我为什么不能用\s,但\s*和\s[E]匹配? 操作系统:Ubuntu 10.04,grep v2.5
87 regex  grep  gnu 

7
用gcc编译C ++程序
问题:如何使用gcc编译器编译C ++程序? info.c: #include<iostream> using std::cout; using std::endl; int main() { #ifdef __cplusplus cout << "C++ compiler in use and version is " << __cplusplus << endl; #endif cout <<"Version is " << __STDC_VERSION__ << endl; cout << "Hi" << __FILE__ << __LINE__ << endl; } 当我尝试编译时 info.c $ gcc …
84 c++  gcc  g++  gnu 

8
如何在不保留目录结构的情况下压缩目录?
我正在使用备份脚本,并且想要压缩文件目录: tar czf ~/backup.tgz /home/username/drupal/sites/default/files 这可以压缩它,但是当我解压生成的文件时,它包括完整的文件结构:这些文件位于中home/username/drupal/sites/default/files。 有没有一种方法可以排除父目录,从而使生成的tar只知道最后一个目录(files)?
81 linux  unix  gnu  tar 

5
GNU可以使句柄文件名带有空格吗?
我有一个包含几个文件的目录,其中一些文件名称中包含空格: Test workspace/ Another directory/ file1.ext file2.ext demo 2012-03-23.odp 我$(wildcard)在此目录上使用GNU的命令,然后使用遍历结果$(foreach),并打印出所有内容。这是代码: FOO := $(wildcard *) $(info FOO = $(FOO)) $(foreach PLACE,$(FOO),$(info PLACE = $(PLACE))) 这是我希望看到的结果: Test workspace Another directory file1.ext file2.ext demo 2012-03-23.odp 这是我实际上会得到的: Test workspace Another directory file1.ext file2.ext demo 2012-03-23.odp 后者显然对我没有用。该文档为$(wildcard)它返回一个“名字的空格分隔的名单”,但完全平整出国家不承认的巨大问题,这引起了。也不对文件进行$(foreach)。 有可能解决此问题吗?如果是这样,怎么办?重命名每个文件和目录以删除空格不是一个选择。
78 shell  makefile  gnu 

4
grep --ignore-case --only
同时使用--ignore-case和--only-match选项时,grep失败。例: $ echo "abc" | grep -io abc abc $ echo "ABC" | grep -io abc $ 但 $ echo "abc" | grep -i abc abc $ echo "ABC" | grep -i abc ABC 根据手册页: -o, --only-matching Show only the part of a matching line that matches PATTERN. -i, --ignore-case …
74 regex  bash  unix  grep  gnu 

3
ELF文件格式的节和段有什么区别
来自Wiki可执行和可链接格式: 这些段包含文件运行时执行所需的信息,而各段包含用于链接和重定位的重要数据。整个文件中的任何字节最多只能由一个部分拥有,并且可以有任何部分都不拥有的孤立字节。 但是节和段之间有什么区别?在可执行的ELF文件中,段中是否包含一个或多个节?
72 linux  debian  gnu  elf  abi 

11
将GCC分别称为“ cc”和“ gcc”
我知道在大多数GNU / Linux系统上,可以从命令行通过名称“ cc”(而不是“ gcc”)调用GCC。一种方式与另一种方式调用时,GCC的行为是否有差异? 例如,我知道通过名称“ g ++”而不是“ gcc”调用GCC会导致GCC行为不同(它将.c文件视为C ++源代码,并在C ++标准库中链接)。“ gcc”与“ cc”之间在行为上是否有类似的区别? 编辑:到目前为止,关于GCC如果以一种方式调用还是以另一种方式调用,行为是否有所不同,到目前为止,没有一个答案给出明确的“是”或“否”。但是,提出深入研究源代码以检查其行为的想法使我沿着这条路走了。根据我在那里的发现,我现在认为答案是: 否。无论通过“ gcc”还是“ cc”调用,GCC的行为都相同。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.