【问题标题】:Error in compiling C++ code?编译 C++ 代码时出错?
【发布时间】:2011-01-22 14:56:51
【问题描述】:
这是我的test.cpp:
#include <iostream.h>
class C {
public:
C();
~C();
};
int main()
{
C obj;
return 0;
}
当我使用命令g++ test.cpp 编译它时,我收到以下错误消息:
在 /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/backward/iostream.h:31 包含的文件中,
来自 test.cpp:1:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/backward/backward_warning.h:32:2: 警告:#warning 此文件至少包含一个已弃用或过时的标头。请考虑使用 C++ 标准第 17.4.1.2 节中的 32 个标头之一。示例包括将标头替换为 C++ 包含的标头,或者代替已弃用的标头。要禁用此警告,请使用 -Wno-deprecated。
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/ccoYkiAS.o:test.cpp:(.text+0x131): 未定义对“C::C()”的引用
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/ccoYkiAS.o:test.cpp:(.text+0x13c): 未定义对“C::~C()”的引用
collect2: ld 返回 1 个退出状态
使用gcc test.cpp 编译会得到类似的消息,甚至更多:
在 /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/backward/iostream.h:31 包含的文件中,
来自 test.cpp:1:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/backward/backward_warning.h:32:2: 警告:#warning 此文件至少包含一个已弃用或过时的标头。请考虑使用 C++ 标准第 17.4.1.2 节中的 32 个标头之一。示例包括将标头替换为 C++ 包含的标头,或者代替已弃用的标头。要禁用此警告,请使用 -Wno-deprecated。
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/cc3ntGx0.o:test.cpp:(.text+0xd): 未定义引用`std::basic_string, std::allocator >::size() const '
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/cc3ntGx0.o:test.cpp:(.text+0x60): 未定义引用`std::basic_string, std::allocator >::operator[](无符号整数)常量'
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/cc3ntGx0.o:test.cpp:(.text+0x9f): 未定义引用`std::basic_string, std::allocator >::operator[](无符号整数)常量'
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/cc3ntGx0.o:test.cpp:(.text+0xce): 未定义引用`std::basic_string, std::allocator >::operator[](无符号整数)常量'
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/cc3ntGx0.o:test.cpp:(.text+0x131): 未定义对“C::C()”的引用
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/cc3ntGx0.o:test.cpp:(.text+0x13c): 未定义对“C::~C()”的引用
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/cc3ntGx0.o:test.cpp:(.text+0x165): 未定义引用`std::ios_base::Init::Init()'
/cygdrive/c/Users/aswinik_sattaluri/AppData/Local/Temp/cc3ntGx0.o:test.cpp:(.text+0x180): 未定义引用`std::ios_base::Init::~Init()'
collect2: ld 返回 1 个退出状态
注意我没有设置LD_LIBRARY_PATH:
bash-3.2$ 回声 $LD_LIBRARY_PATH
重击 3.2$
【问题讨论】:
-
正确格式化您的代码(请下次使用预览!)。仍然 - 有什么问题?
-
标签:
c++
gcc
g++
compiler-errors