我試圖編寫一個數據包嗅探器,並決定使用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庫有什麼建議?我很樂意提供任何其他相關信息!