QT工程看不到头文件和源文件qmake失败stat(".")failed问题解决

5 篇文章 0 订阅

一个原本正常的工程目录,今天突然不正常了:在Ubuntu12.04中使用QtCreator打开,工程目录全在,但是”头文件“和”源文件“目录全部消失,qmake失败,从”编译输出“可以看到QFileSystemEngine::currentPath: stat(".") failed 这样的错误。根据以前的经历推断是挂载盘的问题,稍作折腾后明白了所有的前因后果与解决方法。

①首先这个工程在一开始同一个Ubuntu12.04时是正常的

②工程被移到Windows系统修改编译

③工程目录存在于windows盘以挂载的方式进入Ubuntu系统,此时项目--构建--构建目录是一个挂载盘。我先前已经知道对挂载盘调用Linux的stat()函数是会返回错误的

④正是因为stat调用错误导致QtCreator的不正常表现,刷出了上述QFileSystemEngine::currentPath: stat(".") failed 这样的错误

⑤解决办法是避免使用挂载盘,将工程目录完整拷贝到Ubuntu常规的目录中重新编译。

⑤如果只是将项目--构建--构建目录重新指定一个非挂载的Ubuntu系统原生路径再qmake,”头文件“和”源文件“可见看代码正常,编译依然不正常。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux内核中,通常有许多文件源文件需要编译成.ko(内核对象)文件,以实现对特定功能或驱动程序的支持。 首先,文件包含了函数和数据结构的声明,被其他源文件引用。这些文件通常以.h文件扩展名结尾。源文件则包含了函数和数据结构的实现,通常以.c或.cpp文件扩展名结尾。 为了将多个文件源文件编译成.ko文件,使用Makefile是一个常见的方法。Makefile是一个文本文件,包含了一系列的规则,指定了文件的依赖关系以及编译和链接的命令。 Makefile中的规则通常包括以下几个步骤: 1. 定义目标文件(.ko文件)的名称和相关的编译选项。 2. 定义依赖关系,即指定哪些源文件文件需要进行编译。 3. 定义编译命令,通常使用gcc或其他编译器执行编译操作。例如,可以使用gcc -c命令将源文件编译成目标文件(.o文件)。 4. 定义链接命令,将所有目标文件链接成一个.ko文件。例如,可以使用gcc -o命令将所有目标文件链接成一个.ko文件。 在执行Makefile时,会根据规则的定义逐步执行编译和链接的操作,生成最终的.ko文件。同时,Makefile还可用于指定其他操作,例如清除中间文件或执行其他自定义操作。 总而言之,将多个文件源文件编译成.ko文件可以通过使用Makefile来定义编译和链接的规则,并将其作为输入参数传递给编译器。Makefile中的规则会根据文件的依赖关系逐步执行编译和链接的操作,最终生成所需的.ko文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值