c ++跨多个.cpp文件调用函数?

时间:2013-10-11 14:02:38

标签: c++ function call header-files

我有3个文件: - main.cpp - other.cpp - other.h

我试图调用一个在main.cpp中声明的函数,其中的代码是在other.cpp中编写的

我的代码:

main.cpp中:

//#Allmyincludes
#include "other.h"

int main(int argc, const char *argv[])
{
    const char *file = argv[1];
    read(file);
    return 0;
}

other.cpp:

//#Allmyincludes
#include "other.h"

void read(const char *file)
{
    //code
}

other.h:

void read(const char *file);

我得到的错误是:

main.cpp:(.text+0x44): undefined reference to 'read(char const*)'

read()内,我使用main::variableName从main(无错误)中访问变量,但是我无法让函数调用工作。 如果我尝试执行other::read(file);也不起作用,因为::用于函数而不是文件。它给了我错误:'other' has not been declared.

非常感谢任何有关我的标题文件/调用无效的说明。

2 个答案:

答案 0 :(得分:1)

导致未定义的引用错误的原因有很多。在你的情况下,根据你所描述的,最有可能的是你没有编译other.cpp

您需要将other.cpp添加到项目/ makefile /命令行。

有关更详细的帮助,您可能需要解释如何构建程序。代码没有任何实际问题,这是你构建程序的方式。

答案 1 :(得分:0)

  

gcc -Wall main.cpp other.cpp -o mymain