C와 c + + + 높은 성능 코드를 만들기 위한 기본 플랫폼으로 인정 받고 있습니다. Http://www.aliyun.com/zixun/aggregation/7155.html에 대 한 일반적인 요구 사항 "> 개발자 C를 노출 하는 것입니다 + + 코드를 정확 하 게 어떤 간단한 래퍼 스크립트 언어 인터페이스와 인터페이스 생성기 (꿀 꺽 꿀 꺽)입니다. 꿀 꺽 꿀 꺽 사용 하면 수 C + + 코드 루비, Perl, TCL, 파이썬 등 스크립팅 언어의 넓은 범위를. 이 문서를 사용 하 여 루비 기본 스크립팅 인터페이스 노출 C + + 기능. 이 기사를 이해 하려면 C의 적절 한 지식이 있어야 + + 루비.
꿀 꺽 꿀 꺽은 다양 한 시나리오를 포함 하 여에 맞게 좋은 도구입니다.
스크립트 인터페이스를 제공 하는 C/c + + 코드 쉽게 당신의 루비 확장 코드 또는 교체 기존 코드 실행 단위 및 통합 테스트 TK를 사용 하 여 그래픽 사용자 인터페이스 개발을 C로 그것을 통합 하는 것에 대 한 스크립팅 환경을 사용 하는 기능을 제공 하 고 고성능 대체 모듈을 추가 하는 사용자에 대 한 + + 백 GNU 디버거 할 때마다 트리거되도록 하 고 꿀 꺽 꿀 꺽 보다 디버깅 하기가 쉽습니다.
꿀 꺽 꿀 꺽 설치
이 문서 사용 하 여 꿀 꺽 꿀 꺽 버전 2.0.4 (다운로드 사이트에 대 한 링크는 참고 자료 참조). 구축 하 고 꿀 꺽 꿀 꺽 설치, 명령 프롬프트에서 다음 명령을 입력 하 여 일반적인 오픈 소스 설치 과정을 따르십시오.
Tar xvzf 꿀 꺽 꿀 꺽-2.0.4.tar.gz
./configure–prefix=/your/swig/install/path
확인
설치 확인
참고 접두사에 대 한 제공 하는 경로 절대 경로 여야 합니다.
루비 환경 변수
꿀 꺽 꿀 꺽 해야 래퍼-C를 생성할 때 적절 한 컴파일 되도록 ruby.h + + 코드. 루비 설치에서 Ruby.h를 확인: 환경 변수 ruby_include Ruby.h 및 포인트 ruby_lib 루비 라이브러리를 포함 하는 경로에 있는 폴더를 가리키도록 한 제안 이다.
꿀 꺽 꿀 꺽 안녕하세요 쓰기를 사용 하 여
입력으로 꿀 꺽 꿀 꺽 합니다 ANSI/C를 포함 하는 파일 + + 선언과 꿀 꺽 꿀 꺽 지시문. 나는 꿀 꺽 꿀 꺽 인터페이스 파일로이 입력된 파일을 참조 하십시오. 꿀 꺽 꿀 꺽만 래퍼 코드를 생성 하는 충분 한 정보를 필요 기억 해야 합니다. 인터페이스 파일은 보통 *.i 또는 *.SWG 확장을 있다. 다음은 첫 번째 확장 된 파일 test.i입니다.
%module 테스트 % 지속적인 char * 텍스트 "꿀 꺽 꿀 꺽 Hello 세계"
=
꿀 꺽 꿀 꺽을 사용 하 여이 코드를 실행:
꿀 꺽 꿀 꺽-루비 test.i
두 번째 코드 조각에서 명령줄 현재 폴더에 Test_wrap.c 라는 파일을 생성 합니다. 지금이 C 파일에서 공유 라이브러리를 생성 해야 합니다. 다음은 명령줄입니다.
bash$ gcc-fpic-c test_wrap.c–i$ruby_includebash$ gcc-공유 test_wrap.o–o test_wrap.so–lruby–l$ruby_lib
그것은 간단입니다. 준비가 대화형 루비 셸 (IRB)를 실행 하 고 입력 'test_wrap' 루비 테스트 모듈 및 그 내용을 확인 해야. 다음은 확장 된 루비 끝이입니다.
IRB (메인):001:0 > 'Test_wrap' 필요 = > trueirb (주):002:0 > test.constants= > ["텍스트"] IRB (메인): 0 03:0 > 테스트:: 텍스트 = > "안녕하세요 세계와 함께 꿀 꺽 꿀 꺽"
꿀 꺽 꿀 꺽은 다양 한 언어 확장을 생성, 그냥 실행 꿀 꺽 꿀 꺽-도움말 확인 사용 가능한 모든 옵션을 사용할 수 있습니다. 루비, 꿀 꺽 꿀 꺽-루비 < 인터페이스 파일 > 입력할 수 있습니다; 펄, 꿀 꺽 꿀 꺽-펄 < 인터페이스 파일 > 사용할 수 있습니다.
꿀 꺽 꿀 꺽 사용 하 여 C를 생성 또한 수 있습니다 + + 코드: 사용 – c + + 명령줄에서. 앞의 예에서 꿀 꺽 꿀 꺽 실행-c + +-루비 test.i 현재 폴더에 Test_wrap.cxx 라는 파일을 생성 합니다.