我试图编写一个数据包嗅探器,并决定使用CMake来处理构建配置,因为在某些时候我打算让它成为跨平台。它利用Pcap(1.4)和wxWidgets(2.9.5)库,到目前为止,我已经能够使用CMake为XCode 5.0.1和Unix Makefiles生成构建文件。CMake和wxWidgets 2.9.5
与其将这些库安装到系统目录中,我使用静态库(* .a)并将它们与可执行文件捆绑在一起以实现便携性和便利性,因为此时它只需要在OS X上运行我的教授可以编译它)。我的文件结构如下所示:
project root
build/
src/
main.cc
CMakeLists.txt
libpcap.a
libwx_osx_cocoa_static.a
我编译都PCAP和wxWidgets的(特别wxCocoa暂且因为它有一个XCode项目,并会建立静态库),我的机器上。
的CMakeLists.txt看起来像这样(我知道这是不是很强大的,我只是希望它的工作):
cmake_minimum_required (VERSION 2.6)
project (PacketCap)
add_executable(PacketCap main.cc)
target_link_libraries(PacketCap ${CMAKE_SOURCE_DIR}/libpcap.a)
target_link_libraries(PacketCap ${CMAKE_SOURCE_DIR}/libwx_osx_cocoa_static.a)
而且main.cc:
#include <iostream>
#include "pcap.h"
#include <wx/string.h>
int main(int argc, const char * argv[]) {
char *dev, errorbuf[PCAP_ERRBUF_SIZE];
dev = pcap_lookupdev(errorbuf);
if (!dev) {
std::cout << errorbuf << std::endl;
return -1;
}
std::cout << dev << std::endl;
wxPuts(wxT("Import test"));
return 0;
}
当我删除wx导入,它按照pcap编译和运行。然而,当我添加了WX线我得到这个错误运行make后:
fatal error: 'wx/string.h' file not found
就如何解决这一问题,这样我可以导入wxWidgets库有什么建议?我很乐意提供任何其他相关信息!