c相关内容

LD找不到libjasper库

我正在尝试将一个应用程序与Ubuntu 18.04上的GC链接起来。LD找不到libjasper库。我使用以下命令手动安装了它: sudo apt update sudo apt install libjasper1 libjasper-dev 但收到此错误: /usr/bin/ld: cannot find -llibjasper 我尝试使用此命令添加库,但不起作用: ..
发布时间:2022-07-16 23:13:44 其他开发

在C中将值存储在int中与从getchar函数返回的char中的区别

在阅读Dennis Ritchie的书时,我发现将getchar()函数在C中返回的值存储在整型变量中比存储在字符型变量中更好。声明的原因是字符类型变量不能存储EOF的值。在实际实现时,将返回存储在char类型变量中并不困难。而getchar()函数最初返回的是字符还是字符的ascii值? 推荐答案 EOF的值始终定义为-1。 这很好用,因为所有ASCII代码都是正的,所以它不可 ..
发布时间:2022-07-15 09:00:45 其他开发

代码::BLOCKS-警告:gdb:无法设置控制终端:不允许操作

我已经通过官方资源库安装了Ubuntu 14.04中的Code::Block 13.12。当我编译时,一切都很顺利。但当我调试时,在外壳程序中显示以下消息: 警告:gdb:设置控制终端失败:操作备注 允许 程序一直执行到断点,但当我执行下一行时,不会再显示任何内容。 如何修复此问题? PD:我已经安装了最新版本的GDB(存储库中的版本)。我也试过使用Linux终端,而不是C ..
发布时间:2022-07-14 18:06:58 服务器开发

如何共享我的C/C++项目并隐藏一些源代码?

我想把我用C/C++(LINUX环境GCC/g++编译器)写的项目作为共享库/静态库分享,而不是真正分享源代码。这样其他用户就可以在不知道我的源代码的情况下使用我的项目。谁能告诉我如何以.so/.a格式共享它? 假设我的项目如下: main.cpp, Source1.cpp, Source2.cpp, Source3.cpp, head1.h, 生成文件 如何通过隐藏文件Sour ..
发布时间:2022-07-13 10:57:32 服务器开发

静态库是如何工作的?(C/C++)

我知道如何使用和创建它们,但我找不到关于它是如何实现的、函数调用是如何发生的等等的文本,有人可以帮助我了解这些信息吗?因为我想了解它们,而不仅仅是知道它是什么以及它是如何工作的 推荐答案 您可能知道,当您编译一个源文件时,您会得到一个目标文件。根据您的平台,它的扩展名可能是.o、.obj或其他任何文件。静态库基本上是目标文件的集合,有点像.Zip文件,但可能没有压缩。当尝试生成可执行文 ..
发布时间:2022-07-13 10:46:26 C/C++开发

如何用SDL2.0绘制正方形?

我想做一些简单的事情,比如使用C和SDL在屏幕上画一个正方形。我复制的示例不起作用。 //Get window surface SDL_Surface *screenSurface = SDL_GetWindowSurface(window); //Fill the surface white SDL_FillRect(screenSurface, NULL, SDL_MapRGB(scr ..
发布时间:2022-07-11 20:46:22 其他开发

创建驱动程序时出错。设备驱动程序未安装在任何设备上,请使用原语驱动程序(如果提供

由于此错误,我无法创建内核驱动程序。 设备驱动程序未安装在任何设备上,请使用原始驱动程序(如果提供)。 看起来我的inf文件包含了一些错误,尽管我没有更改任何内容。 请帮帮我)) INF文件 ; ; hellodriver.inf ; [Version] Signature="$WINDOWS NT$" Class=System ClassGuid={4d36e97d-e3 ..
发布时间:2022-07-02 15:36:03 C/C++开发

对于execl,dup2()是否必需

使用管道时是否需要将stdin替换为pipe结尾? 我有一个应用程序:- 创建管道, 派生一个子进程,然后 execl()新子进程中的新进程映像, 但我遇到了两个概念性问题。 是否需要用dup()或dup2()替换stdin?显然,只使用管道中的fd会更容易。(我不需要对此有什么了解) 如果您只能使用管道中的fd,当execl采用char *参数时,如何使用exe ..
发布时间:2022-07-02 10:56:56 其他开发

为什么LLVM分配一个冗余变量?

下面是一个简单的C文件,其中包含一个枚举定义和一个main函数: enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } 它转换为以下LLVM IR: define dso_local i32 @main() #0 { %1 = alloca i32, ..
发布时间:2022-07-01 18:56:05 其他开发

程序在管道上卡住(EXEC%ls grep排序)

我正在尝试编写一个程序,该程序执行以下命令,使用管道并接受两个参数DIR(目录)和arg(文件类型,示例:jpg),将一个命令的输出连接到下一个命令的输入。 ls目录-Lar|grep参数|排序 代码如下: int main(int argc, char *argv[]) { if (argc != 3) { printf("Invalid argume ..
发布时间:2022-06-30 22:24:27 服务器开发

Linux中fork()调用的源在哪里?

我花了相当长的时间试图找到fork()函数的源代码。我知道fork()完成的大部分工作都是由do_fork()完成的,这可以在kernel/fork.c中找到。但是,我希望看到的是fork()函数的源代码。 你知道在哪里可以找到它吗?我翻了GCC和LINUX的源码,还是没找到。 编辑:我正在尝试找到我的系统正在使用的确切实现。正如在注释和Link中提到的,它显然位于glibc的某个包装 ..
发布时间:2022-06-30 22:20:41 服务器开发

为什么调用Main两次?

我刚刚了解了fork,根据我的理解,子进程从对fork的调用开始执行(否则fork将是递归的?)。 然而,在此代码中(ideone link): int main() { printf("%d: Common code1 ", getpid()); if (fork() != 0) { printf("%d: Parent code ", getpid()); } ..
发布时间:2022-06-30 22:15:20 其他开发

Scanf只读句子中的一个单词

我是C的新手,我有一个小问题。我需要编写一个程序,用户在其中输入文本,程序会显示文本的长度。 我尝试了strlen(),但这不是我想要的。 char a[20]; scanf("%s",a) 如果我键入";Hello world";,结果是5,但我需要11。 我需要使用scanf,但可能无法使用它... 推荐答案 此调用 scanf("%s" ..
发布时间:2022-06-29 16:03:21 其他开发

根据位掩码合并两个位域

我想知道是否可以使用位操作来根据位掩码合并两个位域? 例如,我有两个值和一个位掩码: char mask = 0x29; // 0010 1001 char a = 0x9; // 0000 1001 original value char b = 0xE8; // 1110 1000 modified value 我想根据位掩码将b中的位设置为a的值。只有3位会受到影响。 ..
发布时间:2022-06-28 16:43:49 其他开发