在Windows上使用MinGW g ++找不到静态库

时间:2016-03-22 13:34:22

标签: windows g++ mingw static-libraries

我正在使用名为libevent的静态库。

这是我的代码:

#include <iostream>
#include "event2/event.h"
using namespace std;

int main()
{
    event_base_new();
    cout<<"hello"<<endl;
    return 0;
}

这只是用来测试它是否有效。

我在Mac OS,Ubuntu和Windows上编译了库。当我使用g++ -o main main.cpp -I include/ -L lib/ -levent_core在Mac OS和Ubuntu上编译代码时,一切都很好。但是当涉及到Windows时,编译器无法找到该库。我试过下面的cmd:

  • g++ -o main main.cpp -I include/ -L lib/ -levent_core
  • g++ -I include/ -L lib/ -levent_core -o main main.cpp
  • g++ -I ./include/ -L ./lib/ -levent_core -o main main.cpp

他们都得到了错误说

  

C:/ MinGW的/ bin中/../ LIB / GCC /的mingw32 / 4.9.3 /../../../../的mingw32 / bin中/ ld.exe:   找不到-levent_core collect2.exe:错误:ld返回1退出   状态

我确定该库是正确的,因为我可以使用Visual Studio 2013编译代码。(我选择的平台是Win32,所以我认为该库是32位版本)

我在Windows7 64bit上使用mingw32 3.21

g++ --version显示

g++.exe (GCC) 4.9.3
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

当我尝试使用CMake构建代码时,仍然在Mac和Ubuntu上成功,并在Windows上出现相同错误。我在另一台Windows7 PC上再次这样做但仍无法正常工作。

0 个答案:

没有答案