编译时"collect2: error: ld returned 1 exit status"
"collect2: error: ld returned 1 exit status" when compiling
我正在开发一个程序:
#include <iostream>
#include <vector>
#include <utility> //std::pair, std::make_pair
using namespace std;
class User {
private:
size_t userIndex;
vector< pair<int,int> > ratings;
public:
void addRating(int movieIndex, int rating) {
ratings.push_back( make_pair(movieIndex, rating) );
}
};
然而,当我用g++编译它时,我得到了以下错误:
/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../lib/libcygwin.a(libcmain.o): In function `main':
/usr/src/debug/cygwin-1.7.28-1/winsup/cygwin/lib/libcmain.c:39: undefined reference to `WinMain'
/usr/src/debug/cygwin-1.7.28-1/winsup/cygwin/lib/libcmain.c:39:(.text.startup+0x7e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `WinMain'
collect2: error: ld returned 1 exit status
有趣的是,当我注释掉下面的行时,这个错误就消失了:
//vector< pair<int,int> > ratings;
为什么在取消注释此行时会发生这种情况?
完整的给定代码可以用编译
g++ -c user.cpp
链接器指出的问题是,你告诉g++创建一个可执行文件,而不是一个库,但没有指定主要函数:
g++ user.cpp
给出您提到的WinMain丢失的错误(在窗口下)。
这与您指示的注释行完全无关。然而,真正的问题可能是在Makefile内部;请尝试touch
处理代码文件,看看这是否也会导致问题。如果您的Makefile说要重新编译cpp文件,但没有-c
标志,则会出现这种行为。例如,尝试从下面的Makefile中删除-c
标志:
%.o: %.cpp %.h
g++ -c %.cpp
相关文章:
- 我如何测试代码没有调用 exit()
- exit(0) 和 raise(SIGTERM) 有什么区别?
- "Program ended with exit code: 0"出现在我的输出的开头?
- exit(EXITT_FAILURE)在c和c++中是如何工作的
- 在C++中使用exit()退出程序有问题吗
- 什么时候在 c++ 中使用 exit() 与异常更好?
- "ndk-build finish with non-zero exit value 2" 在编译文本仙女项目时
- 当可以返回错误/异常时,从库中终止调用程序(例如,调用exit())是否总是错误的?
- 我在C++中收到错误" [Error] ld returned 1 exit status".帮我解决这个问题
- 为什么错误"permission denied","id returned 1 exit status"仅在 IM 使用 C++ 中的头文件 fstream 时才出现
- 析构函数中的互斥锁C++在 Python 中调用 exit() 时会导致异常
- 我应该使用 std::cerr 和 exit() 而不是抛出异常
- C++11 exit() 和 abs() 不包括 <cstdlib>?
- C++链接器错误 ( "Linker command failed with exit code 1" )
- wifi.status(),在AP_Mode运行时返回WL_Disconnected(6)
- 如何让我的程序在键入"exit"后打印用户键入的所有数据
- 在 c++ 和程序中使用循环遍历数组说"exit status -1"?
- Qt创建器中的"collect2: ld returned 1 exit status"
- "Id returned 1 exit status"错误 C++
- 编译时"collect2: error: ld returned 1 exit status"