Linux系统下遇到的问题总结(未完)
解压缩权限丢失:
自己编写的头文件链接
无法正常引用结构体
无法正常引用系统头文件
解压缩权限丢失:
下载的压缩包要在Linux下解压缩,若在Windows下会丢失x权限
使用命令 chmod +x 添加权限
自己编写的头文件链接:
无法引用自己写的头文件 make后显示 error:xxx.h: No such file or directory
需要在makefile中指明头文件地址: 例如 gcc -c -I/home/sui/code/ main.c
无法正常引用结构体:
函数 int router_traversal( struct ipc_socket *socket, struct process *head );-----b.c中定义 b.h声明
在编译时出现 warning:‘struct ipc_socket’ declared inside parameter list,
在b.c文件中引用的a.h定义的ipc_socket结构体,无法正常引用
由此我们可以知道,由于在a.h文件中,struct ipc_socket结构定义在函数声明int router_traversal( struct ipc_socket *socket, struct process *head );
之后,所以编译的时候将struct ipc_socket作为在参数列表中定义的空结构处理了,这样在编译b.h的时候便与真实的b.c函数定义冲突。
解决方法:在b.c中 #include "a.h" 放在 #include "b.h"之前
无法正常引用系统头文件:
在p_acquisition_C.c文件中使用信号灯进程线程同步,其中用到结构体sem_t 函数sem_init() sem_post() sem_wait() 调用头文件semaphorne.h 结果编译报错提示以上结构体与函数未声明。
解决方法:该文件放在windows操作系统与虚拟机的共享文件夹内,将其拷贝到Linux的文件系统下,可以正常编译通过。
问题:之前没有遇到过这个问题,为什么引用信号灯的时候会出现呢?请各位路过的大侠帮忙解答!!!!!!!!!!!!!万分感谢!!!!!!!!!!!!!!!!!!