【问题标题】:multiple small programs in one code::blocks project一个代码中的多个小程序::blocks项目
【发布时间】:2018-08-13 20:59:12
【问题描述】:

我是 Code::Blocks 的新手。对于我的学习,我正在用 C 编写几个小程序(只是为了尝试一下)。 我试图将它们全部放在一个项目中,因为它们属于同一个主题,但这不起作用,因为它们每个都有一个主要功能。

任何想法我可以如何以某种方式将这些文件放在一起,但不相互依赖?

【问题讨论】:

  • 你可以创建自己的make文件
  • 对不起,我是 C 新手,你是什么意思,怎么做?

标签: c codeblocks


【解决方案1】:

假设你的源文件被调用

  • prog1.c
  • prog2.c
  • mylib.c
  • mylib.h

其中 prog1.c 和 prog2.c 都包含一个 main() 函数,而 mylib.c(带有相应的头文件 mylib.h)包含一些应该链接到每个程序的库函数。在您的 Code::Blocks 项目中,您现在需要创建多个目标。从菜单中选择“文件/新建/构建目标...”并将它们命名为“prog1”和“prog2”。现在将所有源文件添加到项目中(以防您尚未这样做)。

现在右键单击 prog1.c 并从上下文菜单中选择“属性...”。在对话框中选择“构建”选项卡并确保在“属于目标”下仅选中“prog1”。对 prog2.c 和目标“prog2”执行相同的操作。对于“mylib.c”,请确保检查“prog1”和“prog2”。

现在您可以在 UI 中轻松选择要构建和运行的构建目标。请注意,如果您添加另一个目标,例如“prog3”,那么您必须再次转到 prog1.c 和 prog2.c 的构建属性并取消选中“prog3”。

【讨论】:

    【解决方案2】:

    C 程序应该只包含一个 main 函数。将所有单独的程序划分为 Functions 并将它们放入单个 C 程序中,或者您甚至可以将其放入多个文件并编译它们..

    您可以使用switch case 来调用不同的函数..

    从所有程序中删除main function并将它们转换为functions..

    在需要的地方给他们打电话。这对你有帮助。。

    【讨论】:

    • 我知道一个 C 程序应该只包含一个 main 函数。我不想把它们放到函数中,因为那些小程序是独立的,不属于一起,所以从一个文件中调用它们对我来说没有意义。
    • 不,这对我没有帮助,因为我必须稍后提交这些文件,然后它们必须是独立的。我只想编译和运行我正在处理的文件,而不是所有文件。如果没有可能,我会改回我的旧编辑器。
    【解决方案3】:

    假设您的项目包含 3 个 c 文件,每个 c 文件是一个单独的程序,并且它包含自己的 main 函数:

    • program1.c
    • program2.c
    • program3.c

    这样您就可以编写一个 Makefile(它在您的计算机中的名称应该是 "Makfile")。它将单独构建您想要的程序

    这是您的 makefile 的外观:

    all: program1 program2 program3
    
    %.o: %.c
        $(CC) $(CFLAGS) -c -o $@ $^
    
    program1: program1.o
        $(CC) $(LDFLAGS) -o $@ $^
    
    program2: program2.o
        $(CC) $(LDFLAGS) -o $@ $^
    
    program3: program3.o
        $(CC) $(LDFLAGS) -o $@ $^
    
    clean:
        rm -f *.o program1 program2 program3
    

    使用上面的 Makefile,您可以单独构建每个程序

    例子

    $ make program1
    

    将只构建程序 1

    或者您可以使用

    构建所有程序
    $make all
    

    【讨论】:

    • 那么我在哪里输入$make program1?命令行?通常我使用 F9 进行构建和运行。
    • @mvuajua 我有点困惑为什么你接受这个作为答案,因为它实际上并没有回答你关于 code::blocks 的问题。
    • @neuronet 已经五年了,但我认为这就是我当时的做法,其他答案都在后来
    【解决方案4】:

    在我看来,您似乎开始构建一些不错的实用功能。因此,请遵循 raghu-srikanth-reddyce 提供的建议,为每个小程序创建单独的函数。但是我要补充一点,最好为自己创建一个简单的 C 库,以将它们全部保存在其中,您可以随时链接到其中。大多数专业程序员都会保留这样的库。

    一个简单的 makefile 将使您能够构建可以链接到的最终二进制文件。

    祝你编程好运;)

    【讨论】:

    • 不,我只是在做教授交给的任务。我只想编译一个文件,独立于其他文件。
    【解决方案5】:

    如果你想在一个文件中编译,那么你不需要项目文件。 只需创建一个New File,然后将所有代码写入一个文件中。如果需要,也可以使用 FunctionProcedure

    【讨论】:

      【解决方案6】:

      这已经很晚了,但是因为我曾经在这里问过同样的问题,而且我相信大多数学生都有/曾经/将会有同样的问题,让我详细说明一下你在哪里玩过。

      在教育课程和现实世界中,一个项目(通常)是您处理的一些问题,找到解决方案,然后对其进行报告(+文档)。

      在 Programming IDE 中,项目本身就是问题的解决方案。因此,虽然您可能在任何 Python IDE 中的一个项目中遇到多个单独的问题,但任何标准 C/C++ IDE 项目都必须只有一个“main()”来解决所有问题(除非您知道如何创建 makefile)。

      AP 试图做的是将多个不同问题的解决方案放在一个解决方案的空间内——这在 Code::Blocks 中是不可能的。即使所有问题可能共享同一个主题(例如图论),它们本身也是个别问题(Dijkstra vs Floyd)。

      【讨论】:

        猜你喜欢
        • 2013-06-18
        • 2013-02-07
        • 2012-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-10
        相关资源
        最近更新 更多