c 및 x.so 공유 라이브러리를 생성하는 데 사용합니다. xc에 있습니다. 주 모듈에있는 몇 가지 기능을 사용하고 싶습니다. 메인 파일과 exe), 일종의 재귀 dependeny. (x.c에서 해당 함수를 복사하지 않고)이 작업을 수행하는 방법은 무엇입니까? -rdynamic에 대해 읽었지만 완전히 얻을 수 없습니다. 내가 컴파일 할 때 'somefunc'선언이 없습니다. 날 감사C에서 공용 라이브러리 파일의 주 프로그램 파일에서 함수를 사용하는 방법
을 알려 주시기 바랍니다 (somefunc 내가 XC에서 통근 somefunx을했지만 작동하지 않았다, 메인 모듈에)
2
A
답변
2
당신은 함수 포인터 인수를 전화를 철회하기 위해 공유 라이브러리에 영향을받는 방법을 정의하고 수 호출 시간에 주 모듈의 기능을 인수로 전달합니다. 예 :
// Library
void dosomething (int arg, void (*callback)(void)) { ... }
// Main module
void called_from_lib(void) { ... }
dosomething(10, called_from_lib);
0
유닉스와 비슷합니다. 컴파일시에 참조하지 않고 프로그램에 링크하지 않고 라이브러리의 함수를 동적으로 호출 할 수있는 함수 dlopen()이 있습니다. dlopen()은 POSIX이므로 현대적인 유닉스 상자에 있어야합니다. 여기
예 :
http://www.dwheeler.com/program-library/Program-Library-HOWTO/x172.html
또한 LD_LIBRARY_PATH 있습니다. 이 환경 변수를 사용하면 동일한 코드를 사용할 수 있지만 컴파일시에는 없었던 라이브러리로 대체 할 수 있습니다. 이것은 정확히 당신이 요구하는 것이 아니지만, dlopen에 의지하지 않고서는 adhoc 공유 라이브러리를 사용하는 라인을 따라 뭔가를하도록 만들 수 있습니다. HPUX와 같은 일부 시스템은 SHLIB_PATH도 지원합니다.
관련 문제
- 1. 객관적인 C에서 asin() 함수를 사용하는 방법
- 2. 공용 API에서 도우미 함수를 숨기는 방법
- 3. 설치 C에서 사용하는 ClearCanvas 라이브러리
- 4. mode_rewrite 함수를 사용하는 방법
- 5. 다른 창에서 공용 서브 함수를 호출하는 방법
- 6. javascript 파일에서 함수를 찾는 방법
- 7. C에서 중첩 된 함수를 사용하는 것이 좋습니다.
- 8. C에서 자바 스크립트를 사용하는 방법 #
- 9. C에서 구조체를 사용하는 방법?
- 10. C에서 ref를 사용하는 방법
- 11. 코어 파일에서 프로그램 상태 복원
- 12. Mac에서 Objective C에서 Java 라이브러리 호출
- 13. 유닉스 프로그래밍 : C에서 작업 라이브러리
- 14. C에서 브라우저 쿠키를 사용하는 방법 #
- 15. C에서 calloc()을 사용하는 방법?
- 16. 객관적인 C에서 NSNotification을 사용하는 방법
- 17. C에서 콤보 상자를 사용하는 방법
- 18. Objective-C에서 속성을 사용하는 방법?
- 19. Objective-C에서 XMLHttpRequest를 사용하는 방법?
- 20. 객관적인 C에서 카운터를 사용하는 방법?
- 21. objective-c에서 원자 함수를 만드는 방법
- 22. 여러 자바 웹 프로젝트에 공용 라이브러리를 사용하는 방법
- 23. C++에서 간단한 함수를 사용하는 예제 프로그램
- 24. C에서 파일에서 데이터로드
- 25. C에서 함수를 선언해야합니까?
- 26. Eclipse에서 파일에서 프로그램 실행
- 27. C에서 텍스트 파일의 여러 줄을 읽는 방법 #?
- 28. Codeigniter 구성 파일의 라이브러리/모델로드
- 29. C에서 XML 및 XML 스키마를 사용하는 방법
- 30. 다른 파일에서 IValueConverter 구현을 사용하는 방법?
어떤 OS 및 컴파일러입니까? 당신은'somefunc()'를 사용하려고 무엇을 했습니까? 여기에 게시 할 수있는 방법으로 손질하지 않아도됩니다. –