gpt4 book ai didi

c++ - CMake 和 wxWidgets 2.9.5

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:33 37 4
gpt4 key购买 nike

我正在尝试编写一个数据包嗅探器并决定使用 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 库有什么建议吗?我很乐意提供任何其他相关信息!

最佳答案

这是一个最小的 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

关于c++ - CMake 和 wxWidgets 2.9.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648478/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com