루비 네이티브 익스텐션을 만들려고하는데 ext/example_project/extconf.rb
을 사용하여 을 실행하면 프로젝트를 빌드하고 test/
에서 테스트를 실행하면 테스트를 실행할 때 다음과 같은 오류가 발생합니다.ruby native extension : undefined symbol
./home/jbuesking/.rbenv/versions/2.3.0/bin/ruby: symbol lookup error:
/home/jbuesking/repositories/example_project/lib/example_project/example_project.so: undefined symbol: some_function
가 내 파일이 제대로 연결되지 않는 확신과 내가 변경해야 할 나의 extconf.rb
및/또는 어떤 식 으로든 Rakefile
,하지만 난 방법을 모르겠어요.
나는 over on GitHub을 보여주는 간단한 저장소를 만들었습니다. 그것을 복제하고 프로젝트 루트에서 rake
을 실행하면 동일한 오류로 실패합니다.
몇 가지 추가 정보 :
- 나는 오류가 발생한 함수는 하위 디렉토리
ext/example_project/c_example_project
에 정의 된 함수를 호출하려고sow example_project
- 를 통해 프로젝트를 만들 루비 보석
hoe
을 사용했다. 내 실제 프로젝트는ext/example_project
디렉토리의 git 하위 모듈을 사용하며 하위 모듈을 하위 디렉토리로 설정합니다. 하위 모듈은 구조가 평평한 c 프로젝트 (루트 디렉토리의 모든 파일)입니다. 참고 : 그 말씨가 혼란 스러울 수도 있지만 요점은ext/example_project/c_example_project
에 정의 된 중첩 된 C 프로젝트가 있는데 그 중 하나는 호출하려는 메소드가 있다는 것입니다.
설명이 필요한 경우 알려주세요. 최선을 다해 제공해 드리겠습니다.
후속 조치로,이를 수행하기 위해 '괭이'보다 더 나은 것이 있다면 알려 주시기 바랍니다. 나는 튜토리얼을 사용했다. (https://tenderlovemaking.com/2009/12/18/writing-ruby-c-extensions-part-1.html) 발사 지점으로 사용되었지만 7 년이 넘었다. 그때 이후로 오십시오! – JesseBuesking