我希望用cmake构建ruby c扩展,但我在控制台得到/usr/bin/ld: cannot find -llibruby
,这是我的代码:
的CMakeLists.txt
cmake_minimum_required(VERSION 3.3)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
file(GLOB cs *.c)
include_directories($ENV{HOME}/.rbenv/versions/2.2.3/include/ruby-2.2.0/x86_64-linux
$ENV{HOME}/.rbenv/versions/2.2.3/include/ruby-2.2.0)
foreach (c ${cs})
get_filename_component(exe ${c} NAME_WE)
add_executable(${exe} ${cs})
endforeach ()
add_library(mytest SHARED MyTest.c)
link_directories($ENV{HOME}/.rbenv/versions/2.2.3/lib)
find_library(ruby NAMES ruby)
target_link_libraries(mytest ruby)
这是ruby lib:
roroco@roroco-Zhaoyang-K49 ~/Dropbox/rbs/ro_plans $ lsa ~/.rbenv/versions/2.2.3/lib
total 61424
drwxr-xr-x 4 roroco roroco 4096 Nov 21 23:49 .
drwxr-xr-x 6 roroco roroco 4096 Oct 13 22:10 ..
lrwxrwxrwx 1 roroco roroco 16 Nov 21 23:49 libruby.so -> libruby.so.2.2.0
lrwxrwxrwx 1 roroco roroco 16 Nov 21 23:49 libruby.so.2.2 -> libruby.so.2.2.0
-rwxr-xr-x 1 roroco roroco 13573794 Nov 21 23:49 libruby.so.2.2.0
-rw-r--r-- 1 roroco roroco 49306632 Nov 21 23:47 libruby-static.a
drwxr-xr-x 2 roroco roroco 4096 Nov 21 23:49 pkgconfig
drwxr-xr-x 6 roroco roroco 4096 Oct 13 22:10 ruby