我正在使用名为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上再次这样做但仍无法正常工作。