【问题标题】:CMake and wxWidgets 2.9.5CMake 和 wxWidgets 2.9.5
【发布时间】:2013-11-08 00:47:26
【问题描述】:

我正在尝试编写一个数据包嗅探器并决定使用 CMake 来处理构建配置,因为在某些时候我打算让它成为跨平台的。它利用 Pcap (1.4) 和 wxWidgets (2.9.5) 库,到目前为止,我已经能够使用 CMake 为 XCode 5.0.1 和 Unix Makefiles 生成构建文件。

我没有将这些库安装到系统目录,而是使用静态库 (*.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 库的任何建议?我很乐意提供任何其他相关信息!

【问题讨论】:

    标签: c++ cmake wxwidgets


    【解决方案1】:

    这是一个最小的 wxWidgets 示例:

    CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
    PROJECT(wxTestbed)
    
    FIND_PACKAGE(wxWidgets REQUIRED html adv core base net aui xrc qa richtext )
    INCLUDE(${wxWidgets_USE_FILE})
    
    ADD_EXECUTABLE(wxTestbed WIN32
        src/main.cpp)
    
    TARGET_LINK_LIBRARIES(wxTestbed ${wxWidgets_LIBRARIES})
    

    找不到头文件,因为INCLUDE(${wxWidgets_USE_FILE}) 丢失。

    还可以看看我的最小 wxWidgets 示例:https://bitbucket.org/Vertexwahn/cmakedemos/src/a22a956e1e4b/wxTestbed?at=default

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 1970-01-01
      • 2021-07-07
      • 2021-09-30
      • 2021-03-30
      • 1970-01-01
      • 2016-07-24
      • 2021-01-16
      • 2016-04-18
      相关资源
      最近更新 更多