gcc相关内容

无法安装mingw:mingw-get-gui:*错误*存档读取头记录意外结束

我现在正在尝试安装mingw几个小时,但不断收到以下错误消息: 安装:GCC-c++-4.8.1-4-mingw32-bin.tar.lzma 安装GCC-c++-4.8.1-4-mingw32-bin.tar.lzma Mingw-get-gui:*错误*档案读取头记录意外结束“ 并且找不到任何解决我的问题的方法。我试着重新安装7Zip,因为我想可能是因为这个原因。我正在尝试在32位Wi ..
发布时间:2022-09-23 20:36:12 其他开发

推荐-使用GCC构建C++的W标志

我正在寻找针对C++推荐的g++警告选项列表,但只找到了以下内容:Recommended gcc warning options for C和Useful GCC flags for C,它们都是C语言特有的 -WALL和-WExtra启用GCC可以生成的大部分(但不是全部)警告。 哪些警告不是由这些选项启用的,尤其是在编译C++时? 推荐答案 -Wall -Wextra往 ..
发布时间:2022-08-29 12:51:51 C/C++开发

GCC告诫未使用的静态函数,但不是静态内联:有实际区别吗?

我的GCC版本(5.4)警告未使用的static函数,即使在使用-Wall时在头文件中也是如此。如果定义了相同的函数static inline或简单地定义了inline,则不会出现错误。 例如,文件中的以下函数unused.h: static void foo() {} .包括在test.cpp文件中时,如下所示: #include "unused.h" 使用-Wall编 ..
发布时间:2022-08-29 12:23:36 C/C++开发

包括CMake项目依赖项包括带有-issystem的目录

我正在处理的一个项目链接到Google测试(Gtest)作为依赖项。使用Google测试项目中包含的CMakeList,通过CMake的接口依赖项将Google测试头包含在项目中。 target_link_libraries (our_project gtest gmock) 我们在项目中使用的一些警告标志是在Google测试中打印大量警告--例如,GCC的-Wsuggest-over ..
发布时间:2022-08-26 22:26:09 其他开发

编辑设置以允许GCC编译中的参数不匹配

我正在尝试安装this python package。不幸的是,由于排名不匹配,我遇到了编译错误。 here已报告此程序包的错误。错误报告指出,最实用的解决方案似乎是将编译器标志-休眠-参数-不匹配添加到安装脚本中。 我不知道该如何着手做这件事。Setup.py脚本仅包含以下内容: from numpy.distutils.core import setup from numpy.dis ..
发布时间:2022-08-26 18:10:32 Python

LD--导出--仅针对一个库的动态?

可以将--export-dynamic传递给ld,这将导出程序中的符号(以便它们可用于运行时加载的任何共享库): $ cat > test.c void foo() {} int main() { foo(); } ^D $ gcc test.c $ nm -D a.out | grep foo ...没什么。现在: $ gcc -Wl,--export-dynamic te ..
发布时间:2022-08-23 11:59:18 服务器开发

如何用LD链接器命令文件在特定地址放置常量?

我正在使用基于GCC的工具链的嵌入式处理器上开发一个C应用程序。在我的应用程序中,我需要在特定的内存位置放置一个标志。我需要有关链接器命令文件语法的帮助才能完成此操作。 推荐答案 在C文件中编写类似以下内容: static int flag __attribute__ ((section (".flag"))) __attribute__ ((__used__)) = 6; ..
发布时间:2022-08-23 11:21:03 其他开发

如何使函数具有库内部链接?

例如,如果我有两个文件foo.c和bar.o,并且foo.c包含引用bar.o中的函数bar()的函数foo(): int foo(int x) { x = bar(x); /* ... */ } 如何编译公开foo()但不公开bar()的静态或动态库?换句话说,我希望bar()仅在库内链接。 推荐答案 使用标准C时,您只能导出函数或不导出,没有“仅导出到这些文件”选项。因此 ..
发布时间:2022-08-23 11:09:40 其他开发

C-Externs-监控LD_PRELOAD库中的值的安全方法

背景 我帮助维护了一个简单的命令行工具diskmanager,用于监视糟糕的磁盘性能,这主要是由于同时使用同一磁盘的操作/用户太多所致。我的工作涉及维护一个库,libdisksupervisor.so,它偶尔用于通过以下方式启动磁盘管理器程序来监督它: LD_PRELOAD=/public/libdisksupervisor.so /sbin/diskmanager 我们这样做的原 ..
发布时间:2022-08-23 10:58:08 其他开发

GCC LD NoLoad链接器段生成可加载段

我正在开发一个ARM裸机应用程序,我已经用NOLOAD标记了一些部分。根据Understanding链接器脚本未加载部分》中的解释 ,我原以为生成的ELF文件不是具有这些节的可加载段(程序头),但它确实有。 这样对吗?为什么在ELF文件中将这些节标记为可加载? 由于链接器仍将数据放在.bss中,加载器如何知道不应加载节?还是因为NOLOAD只对初始化的符号(通常放在.data中)有意义,所 ..
发布时间:2022-08-23 10:29:02 其他开发

C++中非空函数不返回任何内容

以下代码段中被认为是最佳实践的是什么: int foo(struct data *bar, struct info bla) { if (!bar) { bla->status = 0; return; } ... } 事实上,它工作得很好。但我对gcc给我警告感到不舒服。 以下是实际代码: static int pop ..
发布时间:2022-08-08 11:41:19 其他开发

如何从子进程中获取返回值?

程序计算从1到N的数字总和。 子进程计算偶数的和。 父进程计算奇数的和。 我想获取子进程在父进程中的返回值。我该怎么做 #include #include #include #include #include int main() { int N; int id; int ..
发布时间:2022-08-06 15:27:26 服务器开发

我的C程序不会打印任何东西,即使我尝试了所有我在互联网上读到的东西

我的Hello World程序不提供任何输出。我已经挣扎了一周,试图做互联网上提到的不同的事情,比如: 在末尾添加 (作为printf("Hello World ");) fflush(stdio); getch(); 我尝试重新安装C编译器 我从明码64转到明码32 我甚至尝试过用g++编译 我也使用命令提示符在VS代码上尝试过 但无论如何,我还是不会得到输出。代码如下: ..
发布时间:2022-08-02 18:37:16 其他开发