我尝试在Windows 64bit下使用带有生成器VisualStudio10 Win64的cmakeGUI支持levmar构建库Teem。
首先,我用CLAPACK和F2C建立了Levmar。这很好,因为levmar可以编译而没有错误,并且演示成功了。
神秘的是,当我尝试用levmar支持ON来构建teem时,cmake总是将其关闭"因为它没有找到"虽然我告诉cmake levmar.lib的路径。
这就是CmakeGUI告诉我的: "警告:关闭Teem_LEVMAR,因为找不到它。 配置完成"
以下是与teem一起提供的CMakeList.txt的一部分:
# Look for "levmar" library <http://www.ics.forth.gr/~lourakis/levmar/>
option(Teem_LEVMAR "Build Teem with levmar library support." OFF)
set(Teem_LEVMAR_LIB "")
if(Teem_LEVMAR)
find_package(LEVMAR)
if(LEVMAR_FOUND)
add_definitions(-DTEEM_LEVMAR)
set(Teem_LEVMAR_LIB ${LEVMAR_LIBRARIES})
set(Teem_LEVMAR_IPATH ${LEVMAR_INCLUDE_DIR})
else()
# We need to set this as a cache variable, so that it will show up as
# being turned off in the cache.
message("warning: Turning off Teem_LEVMAR, because it wasn't found.")
set(Teem_LEVMAR OFF CACHE BOOL "Build Teem with levmar library support." FORCE)
endif()
endif()
有谁知道这里发生了什么?
我用3种不同的levmar.lib和不同的生成器尝试了同样的事情但不幸的是我建议我必须告诉cmake库的确切名称或名称levmar.lib是完全错误的。
我向我的主管报告了我的论文的问题,但是他遇到了同样的问题并且无法帮助我。
我也尝试修改CMakeList:
#if(Teem_LEVMAR)
include_directories(${LEVMAR}/lib)
#endif()
原来是
if(Teem_LEVMAR)
include_directories(${Teem_LEVMAR_IPATH})
endif()
但它没有帮助。
为什么cmake将levmar.lib识别为levmar库,实际上并不接受它。
我也试图理解为什么find_package(levmar)
没有成功,但现在我不知道有什么方法可以让它发挥作用。
问候, jan luca。