gpt4 book ai didi

c++ - Code::Blocks 没有制作目标文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:58 24 4
gpt4 key购买 nike

首先,我是一个初学者,所以请给出简单易懂的答案。

我正在起诉 Code::Blocks,我正在尝试用 C++ 制作一个多文件项目。我正在使用 SDL2。我的问题是,当我将所有代码和函数放在一起时,它们会运行,而当我将它们分开时,它们不会运行。这是因为执行文件需要构建它没有得到的目标文件。它没有得到它们,因为编译器没有形成它们。换句话说,链接存在问题。编译器简单地说,没有“.o”文件。这些文件在项目中作为“链接文件”而不是“编译文件”。当我将它们设为“编译文件”和“链接文件”时,它们会产生错误,即我提到它们的文件中的各种变量没有声明。但是当我使用变量将该文件包含在文件中时,它会嵌套很深。

两种方式如下:

第一种方法不起作用,使用单独的文件。

在 main.cpp 中:

    #include <SDL.h>
#include <other.h>

int var;
int linkVar;
int link1Var;
int link2Var;

#include "link.cpp"
#include "link1.cpp"
#include "link2.cpp"

int main( int argc, char* args[] )
{
linkFunc();
link1Func();
link2Func();
}

在 link.cpp/link1.cpp/link2.cpp 中:

    void linkFunc()/void link1Func()/void link2Func() //Just a reference
{
//Code associated with var, link1Var, link2Var and link3Var.
}

第二种方式有效,所有功能都在一个文件中。

第一件事是我不想学习 makefile 的东西。如果有任何其他方法可以解决它,那就这样吧!

最佳答案

Code::Blocks 为它编译的每个文件生成目标文件作为单独的编译单元。它将编译和链接在一起的任何文件,这些文件是它标识为源文件的项目的一部分。

首先,删除 cpp 文件的#includes。然后尝试使用 Project > Add files... 菜单选项将其他 cpp 文件添加到项目中。

关于c++ - Code::Blocks 没有制作目标文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27340995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com