zoukankan      html  css  js  c++  java
  • obejct c

    原来的网站:http://www.tuicool.com/articles/NRN73u

    这两天在学习Objective-C,在Windows下面通过GNUstep和Code::Blocks的结合来进行代码的编辑和测试。关于GNUstep和Code::Blocks的环境的配置网上有很多教程,这里就不说了,配置好之后通过Code::Blocks进行工程的创建,然后测试第一个Hello World程序,没有任何问题,具体流程如下:

    File--->New--->Project--->Console application,建立如下图所示的工程:

    然后将该工程中默认生成main.c改成HelloWorld.m,然后再其中输入代码如下:

    然后进行进行Build and run,得到执行结果如下:

    此时我想将HelloWorld.m文件删除,然后重新添加一个新的Objective-C文件test.m进行测试,如下图:

    然后进行Rebuild,当执行Run时,出现如下问题:

    在网上搜了一下这个问题,大部分都是说环境配置问题,但我这里肯定不是环境问题,因为前面已经运行成功了,然后我仔细查看了一下Compile和Build的输出信息:

    Compile的输出信息:
    Nothing to be done (all items are up-to-date).
    
    Build的输出信息:
    -------------- Build: Debug in objcTest (compiler: GNUstep GCC Compiler)---------------
    
    Linking stage skipped (build target has no object files to link)
    Nothing to be done (all items are up-to-date).

    由上可知,compile什么也没干,Build也没有找到目标文件进行link,简直无语了,怎么会找不到呢,经过多次测试然后我就发现,最开始的test.m 和HelloWorld.m的颜色不一样,如下图: 

     

    test.m是显示为灰色的,然后查看两个文件的属性,发现test.m的compile file和 link file选项都没有被选中,如下图所示,这也就是为什么test.m无法编译链接执行的原因。 

    所以将这两个选项选中,就可以进行编译链接了。得到如下结果:

    至于为什么Cold::Blocks会将.m文件设置成不可Compile和Link,这应该是我们在建立工程时,该工程项目所支持哪些文件可以用来进行编译链接所决定的。当你添加一个新的工程无法识别的文件类型时,默认情况下,该文件是不可以被编译的。

  • 相关阅读:
    20160421
    20160420笔记
    第一个随笔
    搬家
    OO第十五次作业
    OO第三次博客作业
    OO5-7次作业总结
    从入门到不放弃——OO第一次作业总结
    第八次团队作业——系统设计和任务分配
    第七次作业-团队选题报告和需求规格说明书
  • 原文地址:https://www.cnblogs.com/changzheng/p/3959617.html
Copyright © 2011-2022 走看看