2013-08-25 57 views
2

我使用MinGW编译了wxWidgets 2.8.12。为了实际执行构建,我使用安装前缀H:\ MinGW-libs,通过MSYS shell调用了使用wxWidgets分发的autotools构建文件。CMake:找到用MinGW/MSYS构建的wxWidgets?

这样做的结果是我有一个Unix风格的文件树,它包含我的wxWidgets头文件和libs文件(它们是.a文件,而不是.dll),它们的根目录为H:\ MinGW-libs。

我的问题是,我不能让CMake找到文件。当我尝试使用CMake GUI中的“configure”按钮时,它发现了其他依赖项(即boost,为此我必须指定BOOST_ROOT,但它没有找到wxWidgets,我看到wxWidgets_ROOT_DIR是可以设置的常量,但没有明显的选择

H:\MinGW-libs(我的安装前缀wxWidgets的)

H:\MinGW-libs\lib

H:\MinGW-libs\include

修复错误。

关于这个问题有一个old post on the CMake mailing list但实际上没有任何信息表明如何解决这个用例。我唯一的提示是在“Unix风格”文件树和“Windows风格”文件树中寻找wxWidgets是有区别的。

如何让CMake在Windows 7上的Unix样式文件树中找到安装的wxWidgets?有没有办法让CMake使用wx-config?我问这是因为从MSYS命令行使用wx-config来获取lib和头文件的位置工作得很好。

+0

您的库不会生成到'C:/ wxWidgets/lib/gcc_lib'? –

+0

其实是的,但是在构建libs后,我将它们安装到H:\ MinGW-libs中。你为什么问这个? – kjoppy

回答

2

FindwxWidgets.cmake:假定为 “MSYS的Makefile” 发电机(cmake -G "MSYS Makefiles"),但不是因为 “MinGW的Makefile文件” 发电机

if(WIN32 AND NOT CYGWIN AND NOT MSYS) 
    set(wxWidgets_FIND_STYLE "win32") 
else() 
    if(UNIX OR MSYS) 
    set(wxWidgets_FIND_STYLE "unix") 
    endif() 
endif() 

所以Unix风格的树。 你使用哪一个?

+0

我尝试了两种方法。 – kjoppy