C ++:创建全局流变量

时间:2015-07-23 17:18:08

标签: c++ extern ofstream

我想在main.cpp中打开一个输出文件,然后在另一个文件calculate.cpp中写入。

的main.cpp

#include main.hpp

using namespace std;

int main() {
    outputfile.open("output.txt");
}

使用头文件main.hpp

中的全局变量
extern std::ofstream outputfile;

然后在另一个文件 calculate.cpp

中写入
#include main.hpp

void calculate() {
    outputfile << "write this to the external file" << endl;
}

当我这样做时,我收到错误

undefined reference to 'outputfile' in main.cpp
undefined reference to 'outputfile' in calculate.cpp

我正在处理一个包含premade make文件的大型代码,所以我认为没有正确的链接问题。

1 个答案:

答案 0 :(得分:2)

您还没有在任何地方定义- (void)connection:(NSURLConnection __unused *)connection didReceiveData:(NSData *)data { NSUInteger length = [data length]; if ([self.outputStream hasSpaceAvailable]) { const uint8_t *dataBuffer = (uint8_t *) [data bytes]; [self.outputStream write:&dataBuffer[0] maxLength:length]; } } 。行outputfile声明变量,但实际上没有为它定义存储。您需要extern std::ofstream outputfile;main.cpp

中的以下行
calculate.cpp