2014-05-16 1 views
1

이것은 나를 괴롭 히고 있습니다. crypto ++ ver 5.6.2 사용. Mac OSX에서 Qt 5.2.1. 모든 프로젝트는 QT Creator에 내장되어 있습니다. 필자는 다음과 같이 포장을 풀고 건물하여 명령 줄Crypto ++ 라이브러리가 포함 된 QT 콘솔 응용 프로그램

내가 ++ 암호화를 구축에서 만들어 사용하지 :

  1. qmake를 GNUmakefile '은 찾지
  2. 을 삭제
  3. -project
  4. QT에서 열기와는 .PRO 파일을 수정 한

    macx { 
        DEFINES += CRYPTOPP_DISABLE_ASM 
    } 
    

추가하여 대상이다 cryp topp :

TARGET = cryptopp 

릴리스로 설정하고 qmake를 실행하고 모두 다시 작성했습니다. dylibs가 생성 얻을 :

  • libcryptopp.1.0.0.dylib
  • libcryptopp.1.0.dylib (별칭)
  • libcryptopp.1.dylib (별칭)
  • libcryptopp.dylib (별칭)

맨손으로 콘솔 응용 프로그램을 만들고 내 암호 클래스를 포함 시켰습니다. 디버그 모드에서 콘솔 테스트 응용 프로그램에서

macx { 

    # CONFIG += release cryptopp 
    LIBS += /Users/adviner/Qt5.2.1/5.2.1/clang_64/lib/libcryptopp.1.0.0.dylib 

    QMAKE_POST_LINK += install_name_tool -change libcryptopp.1.0.0.dylib $$[QT_INSTALL_LIBS]/libcryptopp.1.0.0.dylib $(TARGET) 
} 

: 는 .PRO 다음과 같은 파일을 수정. Rm qmake를 실행 한 다음 모두 다시 작성하십시오.

:-1: error: symbol(s) not found for architecture x86_64 
:-1: error: linker command failed with exit code 1 (use -v to see invocation) 

qmake를의 단계 구축) 내가 프로젝트를 모두 확인했는데 둘 다 x86_64에 포함됩니다 :

cryptopp lib: 
qmake /Users/myname/Projects/QTLibs/Source/crypto/cryptopp562/cryptopp562.pro -r -spec macx-clang CONFIG+=x86_64 

테스트 콘솔 응용 프로그램 :

qmake /Users/myname/Projects/Test/CryptoTest/CryptoTest.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 CONFIG+=declarative_debug CONFIG+=qml_debug 
을 나는 다음과 같은 오류가 계속

필자는 일부 Google 검색을 수행했지만 아무 것도 내 문제에 대답하지 않는 것 같습니다. 어떤 아이디어? Qt 5.2.1을 사용하는 Windows에서 동일한 암호화 ++ lib를 빌드하고 문제없이 내 응용 프로그램에 사용했습니다.

답변

2

오케이 마침내 알아 냈습니다. 다음

내가 발견 나는 또한 .PRO 파일이 추가했다 콘솔 응용 프로그램에 잘

macx { 
    DEFINES += CRYPTOPP_DISABLE_ASM 
} 

와 지금 작동 : 나는 맥에 암호화 ++ lib 디렉토리를 구축 할 때 상기 한 바와 같이 나는 추가 팁 또한 수정

QMAKE_MACOSX_DEPLOYMENT_TARGET에서 /Users/adviner/Qt5.2.1/5.2.1/clang_64/mkspecs/macx-clang/qmake.conf

= 10.6

~ QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9

그러나 그것은 나를 위해 아무것도하지 못했습니다.

유일한 해결책은 당신이 더 이상 연타를 위해`-DCRYPTOPP_DISABLE_ASM`을 필요로한다 모두 lib 디렉토리에 넣어하지 않으며 CRYPTOPP_DISABLE_ASM

+0

을 테스트했다. LLVM과 Apple Clang의 모든 문제를 해결했다고 생각합니다. 현재 Master에서 사용할 수 있으며 5.6.4 이상에서 사용할 수 있습니다. 5.6.3 ZIP 파일에서는 더 이상 필요하지 않지만 반드시 말할 수는 없습니다. 우리는 픽스의 일부만 잘라 냈다고 생각합니다. – jww