我已经使用代码块很长一段时间了,但从未真正将我的程序变成实际的代码块项目。我今天试图这样做,并且由于代码块无法识别我的文件而导致错误。这就是我所拥有的:----> CodeBlocks Include Error
当我尝试修复我的项目时,我得到了那个cout,我的menu.cpp文件中没有定义cin和我的类对象。所以我只能猜测代码块没有正确处理文件。
如果有人可以帮我解决为什么会这样,我会很高兴。
提前感谢:)
答案 0 :(得分:1)
当我尝试修复我的项目时,我得到了那个cout,我的menu.cpp文件中没有定义cin和我的类对象。
那是因为他们不是。 #include
iostream
} class.h
和menu.cpp
都using namespace
,因此您无法访问其中的声明。
请注意,代码块(就像任何正确设置的构建工具一样)将分别编译每个cpp文件。这意味着它不仅会编译menu.cpp作为main.cpp编译的一部分(因为你包含它),它也会自己编译它。在后一种情况下,main.cpp中的包含将不可用,因此menu.cpp需要它自己的包含。
这也意味着一旦它编译(即一旦你添加了包含),你就会得到一个链接器错误,因为menu.cpp的定义现在定义了两次(一次在main.o中 - 因为你包括main.cpp中的menu.cpp - 以及menu.o中的一次。这就是为什么你永远不应该把cpp文件包含在彼此中的原因。
PS:这与您的问题无关,但在头文件中使用#include <iostream>
被认为是不好的做法。你应该把它放在你的cpp文件中(如果你想要使用它)。您还应该将 try {
LocalSocket mSocket=new LocalSocket();
LocalSocketAddress address=new LocalSocketAddress("wlan0",LocalSocketAddress.Namespace.ABSTRACT);
mSocket.connect(address);
} catch ( IOException ex) {
Log.d("exception raised ", Log.getStackTraceString(ex));
}
放在实际需要它的文件中,而不是头文件。