2012-11-27 5 views
2

VS 2010으로 컴파일 된 Windows에서 실행하기 위해 UCL RAT를 빌드하고 수정하려고합니다. Visual Studio 2010 및 RAT 실행 파일에서 TCL 8.5.12를 성공적으로 컴파일했습니다. .VS 2010에서 컴파일 링 단계에서 심볼이 누락되었습니다.

RAT는 TCL을 사용하여 사용자 인터페이스를 사용합니다.

문제는 zvfs를 사용하는 대신 zip 파일에 문자열로 저장된 TCL 코드를 포함시키기 위해 RAT를 수정하기 시작했을 때 발생했습니다. 결국 실행 파일 끝에 zip을 포함시켜 디스크 사용량과 배포 파일 수를 최소화합니다.

그래서 나는 빨리이 Zlib의 필요 (기본적으로 TCL에 zvfs 확장이다 특히 zvfs.c 파일)

을하는 과정을 만들기 위해 그것을 사용할 수 있는지 확인하기 위해 도베 프로젝트에서 zvfs에 대한 몇 가지 코드를 다운로드 하기 위해서는 빌드하고 통합 된 벌금을 실행합니다.

하지만 문제는 zvfs 코드가 TCL과 제대로 연결되지 않는다는 것입니다. 그것은 컴파일을 통과하지만 연결에 다음과 같은 오류가 있습니다 : C/C++와 나는이 창문의 현대 버전 RAT 고정 다소 도로 블록이되었다 될 수 있기 때문에 링커 경험으로

2>zvfs.obj : error LNK2019: unresolved external symbol _TclOpenFileChannelInsertProc referenced in function _Zvfs_Init 
2>zvfs.obj : error LNK2019: unresolved external symbol _TclStatInsertProc referenced in function _Zvfs_Init 
2>zvfs.obj : error LNK2019: unresolved external symbol _TclAccessInsertProc referenced in function _Zvfs_Init 

이없는

.

RAT의 버전은 UCL Subversion 서버의 최신 버전입니다. Zlib의 버전은 1.2.7입니다.

건배

답변

1

그 특정 기능은 사용되지 않습니다,하지만 여전히 (8.5.12 포함)은 Tcl 8.5에 대한 올바른 빌드 업 지원. Tcl 라이브러리를 깨끗하게 빌드 할 때 사전 처리기 심볼 USE_OBSOLETE_FS_HOOKS을 정의 할 때 컴파일을 사용해야합니다. 아아, 이것은 빌드 지시 사항을 기본값에서 벗어나 편집해야한다는 것을 의미하며, 다른 빌드 체인을 사용할 때 도움이되지 않습니다.

또한 링크 할 때 TCL 라이브러리 자체와 연결해야하며 스텁 라이브러리가 필요하지 않습니다.

+0

Tcl 8.6 이후의 코드는 쓸모없는 함수가 제거되었으므로 _에서 작동하지 않습니다. TOBE는 해당 후크를 대체하는 VFS API를 사용하도록 업데이트해야합니다. –

+0

장기간에 걸쳐 새로운 tcl 후크와 일치하도록 zvfs 코드를 수정하는 것이 더 좋을지라도, 고마워 제 연결 문제를 해결했습니다. 나는 여전히 RAT를 작동시키지 못했지만 zvfs 코드의 잘못이 아니며, tcl 스크립트 자체가 업데이트되어야한다고 생각합니다. – user1855149

+0

버전에 민감한 경우 RAT를 8.4로 롤백하는 것이 좋습니다. 아직 지원되는 Tcl 버전입니다. –

관련 문제