문제

일이 완료된 것 같습니다. PTHREAD-WIN32 x64와 함께 작업하지만 빌드 지침은 없습니다. Visual Studio X64 Cross Tools 명령 프롬프트로 동시에 빌드를 시도했지만 X64 응용 프로그램에서 LIB에 링크하려고 할 때 기능 내보내기를 볼 수 없습니다. 여전히 lib를 x86 또는 무언가로 컴파일하는 것 같습니다.

적절한 장소에서 makefile에 /기계를 추가하려고 시도했지만 도움이되지 않습니다. 누구든지 이것을 일에 얻은 사람이 있습니까?

도움이 되었습니까?

해결책 2

공식적으로 출시 될 때까지 도서관의 버전 2.9를 얻으려면 CVS 헤드를 확인해야합니다. 버전 2.9에는 모든 x64 패치가 있지만 명령 줄에서 정적 라이브러리를 컴파일하려고하면 여전히 문제가 있습니다.

내가 아는 유일한 해결 방법은 LIB를 정적으로 연결하는 대신 DLL을 사용하는 것입니다.

다른 팁

저에게는 64 비트 Wind

$ make clean GC-static 

그런 다음 사용하기 위해 설치 방법 (물론이 중 일부는 필요하지 않을 수 있음),

cp libpthreadGC2.a $mingw_w64_x86_64_prefix/lib/libpthread.a
cp pthread.h sched.h semaphore.h $mingw_w64_x86_64_prefix/include

그런 다음 사용하려면이를 정의해야합니다 (예제 FFMPEG 구성 라인을 사용하려면) :

--extra-cflags=-DPTW32_STATIC_LIB 

어쨌든 그것은 한 가지 방법입니다.

또 다른 방법은 동일한 작업을 수행 한 다음 *.h 파일을 수정하고 헤더에서 dllexport에 대한 모든 참조를 제거하는 것입니다 (또는 헤더에서 dptw32_static_lib를 수동으로 정의).

전:

 sed 's/ __declspec (dllexport)//g;s/ __declspec (dllimport)//g'

(참조 : Zeranoe 빌드 스크립트)

내가 한 방법은 다음과 같습니다 (vs2015). 오래된 비주얼 스튜디오에서도 작동해야합니다.

1) Sourceforge에서 릴리스 .zip을 다운로드하십시오
2) 깨끗한 폴더로 포장을 풀고 "pthreads.2"를 참조해야합니다.
3) Visual Studio 명령 프롬프트를 열고 "pthreads.2"로 이동하십시오. 4) "nmake"를 실행하고 논쟁이 없습니다. 'NMake'를 제공 할 수있는 모든 법적 명령을 나열하는 도움말 메시지가 생성됩니다. 자세한 내용은 'PTHREADS.2 FAQ "파일을 참조하십시오.이 파일은 3 가지'정리 '처리 기능을 설명합니다.

나는 "VC"와 "VC-Debug"(그리고 아마도 정적 인 것들)를 건설하는 것이 좋습니다. '실제'pthreads는 Linux와 같은 Posix 플랫폼의 C 시스템 라이브러리이므로 Linux, FreeBSD 등에서 얻을 수있는 Windows에서 동일한 C 오류 동작을 제공합니다.

이 메시지 도움이 될 수 있습니다.

KGRIFFS를 확장하려면 답변은 32 비트 DLL이 아닌 64 비트 DLL을 실제로 구축하기 위해 두 가지를 더해야합니다.

먼저 CVS를 통해 최신 PTHREADS를 다운로드하십시오 (제안 된대로 여기)

1) 64 비트 빌드 도구 사용 - 명령 줄에 올바른 VC 환경 설정을로드하여 달성합니다 (자세한 내용 여기):

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat amd64

(사용중인 버전으로 11.0을 변경하십시오)

2) pthreads makefile에 작성된대로 :

Target_CPU는 SDK (VS 2010 Express Plus SDK 7.1)가 제공 한 Visual Studio 명령 프롬프트가 설정 한 환경 변수입니다. 플랫폼은 VS 2013 Express X64 교차 개발 환경에서 설정할 수있는 환경 변수입니다.

즉, VCVARS에 의해 수행되지 않은 경우 (내 경우에는 그렇지 않았습니다) Target_CPU 또는 플랫폼을 설정해야합니다 (두 가지를 모두 설정할 경우).

set TARGET_CPU=x64 set PLATFORM=x64

3) 그리고 이제 마지막 단계 :

nmake clean VC nmake clean VC-debug

이렇게하면 64 비트 DLL 파일 (및 적절한 가져 오기 라이브러리 및 PDB)이 만들어집니다. Visual Studio 2012에서 작동하는지 확인할 수 있습니다.

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