문제

일부 기능 정의에 의해 확장되어야하는 프로그램을 작성하고 있습니다. 프로그램을 컴파일하는 방법 중 하나는 코드를 기본 코드에 연결하는 단일 실행 파일을 만드는 것입니다. 문제는 다음과 같습니다. 정의 할 기능 중 하나는 선택 사항이며 테스트해야합니다.

Linux에서는 여기에 내가하는 일이 있습니다.

"-rdynamic"옵션으로 프로그램을 G ++ 또는 "-Export-Dynamic"옵션으로 LD로 컴파일하십시오. 그런 다음 다음과 같은 ldsym을 사용하십시오.

fct_type myfct = (fct_type)dlsym(RTLD_DEFAULT, "fct");

"FCT"기능이 프로그램에 존재하면 주소를 반환하면 NULL을 반환합니다.

이제 Windows에서는 그렇게 할 수 있어야합니다.

dll_handle = GetModuleHandle(0);
fct_type myfct = (fct_type)GetProcAddress(dll_handle, "fct");

그러나 mingw32에서 g ++에 "-rdynamic"또는 "-export-dynamic"옵션이 없습니다! 그래서 이것은 작동하지 않습니다. mingw32로 Windows에서 무엇을 해야하는지 아는 사람이 있습니까?

도움이 되었습니까?

해결책

좋아, 결국, 나는 내 자신의 질문에 대답 할 것이다 ...

깃발과 연결해야합니다 -Wl,--export-all-symbols 그리고 그것은 작동합니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top