codelite吧 关注:105贴子:262
  • 3回复贴,共1

求助:CodeLite编译新建的控制台工程失败

只看楼主收藏回复


CodeLite14 Windows10
这啥情况?我就创建了个控制台工程,除了编译器位置啥也没设置,难道连Hello World都不让人用了?


IP属地:广东1楼2020-04-10 22:00回复
    我也遇到了和你一样的问题。这问题的直接原因应该是make命令执行时SHELL设置的问题,但导致shell设置不对的原因应该还是Codelite设置的$(MAKE)参数的问题。
    当你编译test这个project的时候,codelite会在workspace目录中生成Makefile,它里面执行的操作是
    @贴吧用户_0000Q9P "test" && "$(MAKE)" -f "test.mk"
    也就是进到test目录,然后再执行make命令,但这次用的make文件是test.mk,打开test.mk文件,第84行是这样的代码
    @if not exist "..\build-$(ConfigurationName)\test" mkdir "..\build-$(ConfigurationName)\test"
    最终执行的命令就是在上一级目录,也就是workspace的目录中建一个build-debug(注:debug是$(ConfigurationName)的值)\test目录,问题就出在这里,在不同的shell里,你这样建目录命令行有的可以执行,有的就会报错。而根据提示信息里的/usr/bin/sh,应该是第二次执行的make命令没有设置SHELL为cmd.exe,因为像上面的那个建目录的操作在windows的cmd里是可以执行成功的,但是在make文件默认的shell里,这样的建目录语法是会像你的提示那样报错。
    具体怎么解决我还没研究,不知道codelite里能否设置MAKE那个变量,要是可以改的话,那就简单了,直接在变量中的make命行中加上SHELL=cmd.exe即可


    3楼2021-06-12 08:34
    回复
      这个问题的解决办法就是重新设置一下MAKE这个环境变量,在菜单settings->Environment Variables中加入如下一行
      MAKE="D:\devs\mingw64\bin\mingw32-make.exe -j4 SHELL=cmd.exe"
      就可以正常编译运行程序了,注意设置中值一定要用双引号括起来


      4楼2021-06-12 09:20
      回复
        会不会是,代码有特殊的空格?


        IP属地:广东5楼2022-08-26 10:40
        回复