使用CMake在Windows上设置FLTK

时间:2012-03-20 00:29:31

标签: c++ windows cmake winapi fltk

我正在尝试使用Windows SDK在CMake上构建FLTK 到目前为止,这是我迄今为止所取得的成就:

> svn co http://svn.easysw.com/public/fltk/fltk/branches/branch-1.3/ fltk-1.3
> cmake CMakeLists.txt -DOPTION_BUILD_EXAMPLES=NO -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:\dev\fltk-1.3
> nmake
> nmake install

到目前为止没有错误。

然后我创建了一个test.cpp文件,其中包含一个hello world示例,我从文档中删除了 这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 2.6)
project(Test)

find_package(FLTK REQUIRED NO_MODULE)
include(${FLTK_USE_FILE})

add_executable(test WIN32 test.cpp)

target_link_libraries(test fltk)

当我运行cmake CMakeLists.txt时,我收到错误,要求我设置FLTK_DIR,所以这是我到目前为止所得到的:

> cmake CMakeLists.txt
(error about FLTK_DIR)
> cmake CMakeLists.txt -DFLTK_DIR=C:\dev\fltk-1.3\CMake
> nmake

最后一个nmake命令给出了这个输出:

[100%] Building CXX object CMakeFiles/test.dir/Test.cpp.obj
Test.cpp
Linking CXX executable test.exe
LINK : fatal error LNK1104: cannot open file ';.obj'
LINK Pass 1 failed. with 2
NMAKE : fatal error U1077: 'C:\dev\cmake-2.8.7-win32-x86\bin\cmake.exe' : return code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\nmake.exe"' : return code '0x2'
Stop.

我尝试让FLTK将自己安装到默认位置,这没有任何区别。

那么,任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

经过几个小时的努力,我终于明白了。

我必须在FLTKConfig.cmake

中注释掉这三行
if(NOT " /STACK:10000000 /machine:X86 " STREQUAL "")
   set(FLTK_EXE_LINKER_FLAGS " /STACK:10000000 /machine:X86 ")
endif(NOT " /STACK:10000000 /machine:X86 " STREQUAL "")

他们导致它在link.exe的命令行中添加'; '字符,因此导致它尝试与 ;. OBJ

我还必须重建FLTK,并在CMakeCache.txt中将“/ MD”的所有出现更改为“/ MT”。

答案 1 :(得分:1)

FLTK的站点管理员。

我没有足够的代表向OP添加评论。 OP消息中的http://easysw.com/网址不再有效。

有关FLTK源代码的最新下载,请参阅http://fltk.org/ 只需点击“下载”链接即可。在那里,您将找到tar文件和SVN访问信息的最新源代码下载。