2016-07-25 2 views
0

간단한 프로그램에서 하나의 OpenSSL 함수를 사용하고 있습니다. 그러나 나는 그 하나의 기능에 대한 미해결 된 상징을 얻고있다. 아래는 내 프로젝트 속성 설정입니다. 프로젝트에 OpenSSL을 포함시키는 방법을 설명하고 그러한 지시를 수행하는 다른 게시물을 추적했습니다. 내 Visual Studio 2013 설치가 잘못 되었습니까?링커 Visual Studio 2013의 OpenSSL 문제

오류 1 오류 LNK2019 :

_main 함수에서 참조되지 않은 외부 기호 _SHA1은 내가 64 비트에서 OpenSSL 버전을 사용하고 있다고 할 수 있을까요? 내 프로젝트가 <CharacterSet>Unicode</CharacterSet>입니까?

... Code generation = Multi-threaded Debug DLL (/MDd) 

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 
    <ClCompile> 
     <WarningLevel>Level3</WarningLevel> 
     <Optimization>Disabled</Optimization> 
     <SDLCheck>true</SDLCheck> 
     <AdditionalIncludeDirectories>C:\OpenSSL-Win64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 
    </ClCompile> 
    <Link> 
     <GenerateDebugInformation>true</GenerateDebugInformation> 
     <AdditionalLibraryDirectories>C:\OpenSSL-Win64\lib;C:\OpenSSL-Win64\lib\VC\static;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 
     <AdditionalDependencies>libeay32.lib;libeay32MDd.lib;ssleay32.lib;ssleay32MDd.lib;%(AdditionalDependencies)</AdditionalDependencies> 
    </Link> 
</ItemDefinitionGroup> 

해결책 :

문제는 I가 32 비트 정적 라이브러리에 연결되어야하는 경우 나 64 비트 정적 라이브러리에 연결시켰다. 해결 :

그래서 모두 >C:\OpenSSL-Win64\...>C:\OpenSSL-Win32\...으로 변경하십시오. OpenSSL 32 비트 설치 프로그램을 설치하십시오.

+0

'중복 된'질문 (이후 삭제됨)과 위의 댓글 링크는 모두 관중들에게 유용하고 관련이 있습니다. –

+0

우리 중 일부는 OP가 쿠키 커터 서비스가 아닌 공정하게 흔들릴 수 있도록 노력합니다. 제안 된 링크가 불필요하다고 사과드립니다. 디렉토리에 기반한 문제와 라이브러리 이름에 대해 알고있는 것이 무엇인지 분명히 알지 못했습니다. 링크가 제거되었습니다. – jww

답변

1

문제는 32 비트 정적 라이브러리에 연결해야 할 때 64 비트 정적 라이브러리에 연결하는 것이 었습니다. 해결 :

그래서 모두 C:\OpenSSL-Win64\...C:\OpenSSL-Win32\....으로 변경하십시오. OpenSSL 32 비트 설치 프로그램을 설치하십시오.

관련 문제