.cpp
文件链接在一起。呼唤
方法无法看到其他来源。
我正在使用Code :: Blocks作为带MinGW的IDE。
非常感谢任何帮助。它会更多 如果你能展示固定的来源,请回复一下 带有它的pastebin页面。
/***********************************main.cpp***********************************/
#include <iostream>
using namespace std;
#include "test.h"
int main()
{
printTest(); //can't see printTest, defined in test.cpp
return 0;
};
/***********************************test.h***********************************/
#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED
void printTest();
#endif // TEST_H_INCLUDED
/***********************************test.cpp***********************************/
#include "test.h"
void printTest()
{
cout << "Hello world!" << endl;
};
答案 0 :(得分:3)
您可能会发现this code blocks wiki有帮助。看起来Code块使用托管构建系统,因此如果您正确地将文件添加到项目中,那么它应该知道编译它并链接到导致的目标文件中。
当你使用&#34;使用命名空间std时,更加明确其他一些注释;&#34;命名空间仅包含在using语句所在的文件的范围内。这就是为什么其他人告诉你明确指定std :: namespace。您还可以将所有std命名空间放入test.cpp文件中的范围。很多人认为这是一个坏习惯。通常最好通过
将所需内容纳入范围using std::cout;
using std::endl;
最后,请记住std :: endl添加了一个新行并刷新了缓冲区,它并不是所有情况下新行字符的良好替代品。
答案 1 :(得分:1)
在test.cpp中,将cout << "Hello world!" << endl;
替换为std::cout << "Hello world!" << std::endl;
答案 2 :(得分:1)
#include <iostream>
中添加test.cpp
,以便编译器知道“cout”是什么。
正如sanket所说,你应该在std::cout
中使用std::endl
和test.cpp
。