2010-09-22 22 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