gcc相关内容
我现在正在尝试安装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
..
我正在寻找针对C++推荐的g++警告选项列表,但只找到了以下内容:Recommended gcc warning options for C和Useful GCC flags for C,它们都是C语言特有的 -WALL和-WExtra启用GCC可以生成的大部分(但不是全部)警告。 哪些警告不是由这些选项启用的,尤其是在编译C++时? 推荐答案 -Wall -Wextra往
..
我在项目中遇到了一些奇怪的GCC警告。让我们在3个文件中查看这个简单的示例: struct.h typedef struct { int a; long b; char *c; } myStruct; 函数.c #include #include #include "struct.h" myStruct* f
..
我的GCC版本(5.4)警告未使用的static函数,即使在使用-Wall时在头文件中也是如此。如果定义了相同的函数static inline或简单地定义了inline,则不会出现错误。 例如,文件中的以下函数unused.h: static void foo() {} .包括在test.cpp文件中时,如下所示: #include "unused.h" 使用-Wall编
..
我正在处理的一个项目链接到Google测试(Gtest)作为依赖项。使用Google测试项目中包含的CMakeList,通过CMake的接口依赖项将Google测试头包含在项目中。 target_link_libraries (our_project gtest gmock) 我们在项目中使用的一些警告标志是在Google测试中打印大量警告--例如,GCC的-Wsuggest-over
..
我正在尝试安装this python package。不幸的是,由于排名不匹配,我遇到了编译错误。 here已报告此程序包的错误。错误报告指出,最实用的解决方案似乎是将编译器标志-休眠-参数-不匹配添加到安装脚本中。 我不知道该如何着手做这件事。Setup.py脚本仅包含以下内容: from numpy.distutils.core import setup from numpy.dis
..
可以将--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
..
我正在尝试针对特定位置(/home/user/cuda_sync_analyzer-install/lib/libInsertTimingInstr.so)的共享库编译C文件,但ld似乎找不到它- $ gcc -g -I/home/user/tools/cuda_sync_analyzer/src/InsertTimingInstr -L/home/user/cuda_s
..
我正在使用基于GCC的工具链的嵌入式处理器上开发一个C应用程序。在我的应用程序中,我需要在特定的内存位置放置一个标志。我需要有关链接器命令文件语法的帮助才能完成此操作。 推荐答案 在C文件中编写类似以下内容: static int flag __attribute__ ((section (".flag"))) __attribute__ ((__used__)) = 6;
..
例如,如果我有两个文件foo.c和bar.o,并且foo.c包含引用bar.o中的函数bar()的函数foo(): int foo(int x) { x = bar(x); /* ... */ } 如何编译公开foo()但不公开bar()的静态或动态库?换句话说,我希望bar()仅在库内链接。 推荐答案 使用标准C时,您只能导出函数或不导出,没有“仅导出到这些文件”选项。因此
..
背景 我帮助维护了一个简单的命令行工具diskmanager,用于监视糟糕的磁盘性能,这主要是由于同时使用同一磁盘的操作/用户太多所致。我的工作涉及维护一个库,libdisksupervisor.so,它偶尔用于通过以下方式启动磁盘管理器程序来监督它: LD_PRELOAD=/public/libdisksupervisor.so /sbin/diskmanager 我们这样做的原
..
我正在开发一个ARM裸机应用程序,我已经用NOLOAD标记了一些部分。根据Understanding链接器脚本未加载部分》中的解释 ,我原以为生成的ELF文件不是具有这些节的可加载段(程序头),但它确实有。 这样对吗?为什么在ELF文件中将这些节标记为可加载? 由于链接器仍将数据放在.bss中,加载器如何知道不应加载节?还是因为NOLOAD只对初始化的符号(通常放在.data中)有意义,所
..
fmod的示例代码: #include #include int main(void) { double x = 0.14527, y = 3.14159; printf("fmod(x, y) = %.6lf ", fmod(x, y)); return 0; } 编译: $ gcc
..
在Ubuntu 20.01 LTM中尝试使用VS代码设置SDL2时,出现以下VS代码错误: cannot open source file "begin_code.h" (dependency of "SDL2/SDL.h") 有什么建议吗? 推荐答案 只需将"/usr/include/SDL2/"添加到c_cpp_Properties.json,如下所示: {
..
我有一个用于测试的C程序:a.c int a = 0; static int fa_local() { a = 78; int b; int c; } int fa_global() { a = 7777; fa_local(); } int test() { a = 6666; fa_global(); } 这是生成后的
..
C代码: void PtrArg1(int* a,int* b,int* c, int* d, int* e, int* f) { return; } void PtrArg2(int* a,int* b,int* c, int* d, int* e, int* f, int* g, int* h) { return; } 使用 编译 gcc -c -m64 -o
..
以下代码段中被认为是最佳实践的是什么: int foo(struct data *bar, struct info bla) { if (!bar) { bla->status = 0; return; } ... } 事实上,它工作得很好。但我对gcc给我警告感到不舒服。 以下是实际代码: static int pop
..
在Compiler Explorer周围测试时,我尝试了以下无溢出函数来计算2个无符号32位整数的平均值: uint32_t average_1(uint32_t a, uint32_t b) { if(a
..
程序计算从1到N的数字总和。 子进程计算偶数的和。 父进程计算奇数的和。 我想获取子进程在父进程中的返回值。我该怎么做 #include #include #include #include #include int main() { int N; int id; int
..
我的Hello World程序不提供任何输出。我已经挣扎了一周,试图做互联网上提到的不同的事情,比如: 在末尾添加 (作为printf("Hello World ");) fflush(stdio); getch(); 我尝试重新安装C编译器 我从明码64转到明码32 我甚至尝试过用g++编译 我也使用命令提示符在VS代码上尝试过 但无论如何,我还是不会得到输出。代码如下:
..