2010-09-22 24 views
2

我试图建立Qpid。当运行CMake时,会打印到日志中:RUBY_LIBRARY cmake变量当建立Qpid

Could NOT find Ruby (missing: RUBY_LIBRARY) 

[ ... more stuff cut for brevity ] 

CMake Error at src/CMakeLists.txt:96 (include): 
    include could not find load file: 

    C:/qpid/0.6/qpid/build/src/rubygen.cmake 

它似乎失败了,因为它找不到应该生成的文件。但是它没有找到Ruby。

但似乎至少部分找到Ruby,因为其他一些RUBY_*变量已在CMake中设置为像RUBY_EXECUTABLE和RUBY_INCLUDE_DIR。

什么是RUBY_LIBRARY,它应该设置为什么? Ruby安装在C:\ Ruby192中。

回答

1

根据/usr/share/cmake-2.8/Modules/FindRuby.cmake

# RUBY_LIBRARY  = full path to the ruby library 

我看你是在Windows上。我猜想要链接到DLL,你要么指向${RUBY_DIR}\lib\msvcrt-ruby191.lib${RUBY_DIR}\bin\msvcrt-ruby191.dll(我使用从ruby-lang.org抓取的Ruby 1.9.1二进制文件中的名称)。要链接静态库,您需要${RUBY_DIR}\lib\msvcrt-ruby-191-static.lib

我不知道这些库是否构建对msvcrt的事实会导致与VS2008编译器链接时出现问题。我很久以前就把这个毛球扔掉了。

+0

我在Visual Studio 2008中使用编译器。 – Mizipzor 2010-10-08 09:48:48

+1

通常,CMake中的库变量应设置为链接器使用的库文件的完整路径。对于dll,它是相应的.lib导入库文件。在这种情况下,“$ {RUBY_DIR} /lib/msvcrt-ruby191.lib” – DLRdave 2011-02-25 23:21:14

+0

@DLRdave:已修复,谢谢。 – 2011-02-26 02:26:21