2017-09-21 17 views
1

Windows 10에서 Visual Studio 2017과 함께 LIBSVM을 사용하려고합니다. libsvm-3.22/Windows 디렉토리 아래에 Dll 파일과 여러 exe 파일이 있지만 lib 파일은 없습니다.Visual Studio 2017에서 LIBSVM을 빌드하는 방법은 무엇입니까?

C : \ 프로그램 파일 마이크로 소프트 비주얼 스튜디오 \ (86) 14.0 \ VC \ 빈 \

nmake -f C:\...\libsvm-3.22\Makefile.win clean all 

Vcvars32.bat을 Readme 파일의 지침에 따라 내가 cmd를 윈도우에서 실행하여 구축하려 결과는 오류 메시지가 있습니다

NMAKE : 심각한 오류 U1073 : 내가 lib 디렉토리 파일을 빌드하는 대신이 명령을 실행하면 'svm.h'

을 만드는 방법을 알고하지 않습니다

nmake -f C:\...\libsvm-3.22\Makefile.win lib 

이 유사한 오류를

NMAKE을 제공합니다 : 심각한 오류 U1073을 'svm.cpp'

수있는 한 도와 줘요를 만드는 방법을 몰라? (단지의 경우 원래의 페이지에 여기에 중복 사라)

+0

당신은 당신의 .DLL에서 lib 디렉토리를 만들 수 있습니다 - https://adrianhenke.wordpress.com/2008/12/ 05/create-lib-file-dll/ – SBF

+1

와우! 정말 고마워, 실제로 작동하고 이제는 성공적으로 내 코드를 빌드 할 수 있습니다! – evi

답변

1

Create .lib file from .dll

열기는 Visual Studio 명령 프롬프트, 당신은 그것의 시작 -에서 바로 가기 -> 프로그램 ->의 Microsoft Visual Studio-> 도구를 찾을 수 있습니다.

dumpbin /exports C:\yourpath\yourlib.dll>yourlib.def 

이이 TEXTFILE의 yourlib.def 만듭니다 :

ordinal hint RVA  name 

1 0 00017770 jcopy_block_row 
2 1 00017710 jcopy_sample_rows 
3 2 000176C0 jdiv_round_up 
4 3 000156D0 jinit_1pass_quantizer 
5 4 00016D90 jinit_2pass_quantizer 
6 5 00005750 jinit_c_coef_controller 
...etc 

이제 개방 yourlib.def을하고 있지만 모두 제거 이제 DLL의 모든 수출 함수의 목록을 얻을 수 dumpbin 명령을 실행 함수 이름을 지정하고 "EXPORTS"행을 맨 위에 놓습니다. 내 yourlib.def 파일은 다음과 같습니다 :

EXPORTS 
jcopy_block_row 
jcopy_sample_rows 
jdiv_round_up 
jinit_1pass_quantizer 
jinit_2pass_quantizer 
jinit_c_coef_controller 
... 

는 이제 정의 파일에서, 우리는 마침내 lib 디렉토리 파일을 만들 수 있습니다. 우리는이를 위해 lib 도구를 사용하므로 비주얼 스튜디오 명령 프롬프트에서 다음 명령을 실행

lib /def:C:\mypath\mylib.def /OUT:C:\mypath\mylib.lib