Microsoft MVP성태의 닷넷 이야기
글쓴 사람
홈페이지
첨부 파일
 

Visual C++ 빌드 오류 - fatal error LNK1104: cannot open file 'atls.lib'

만약 ATL 프로젝트 빌드 시 다음과 같은 오류가 발생한다면?

1>TestProject_i.c
1>LINK : fatal error LNK1104: cannot open file 'atls.lib'

원인은 WDK 설치와 함께,

Visual Studio 2019 + WDK Legacy Driver 제작- Hello World 예제
; https://www.sysnet.pe.kr/2/0/12103

Spectre 라이브러리 구성 요소를 설치했기 때문입니다. 이와 관련해서 여러 가지 우회 방법이 있지만,

Cannot Open File atls.lib
; https://stackoverflow.com/questions/11123088/cannot-open-file-atls-lib

Spectre lib folder missing
; https://developercommunity.visualstudio.com/content/problem/253047/spectre-lib-folder-missing.html

Spectre 라이브러리 설치 후 기본 값으로 활성화된 "/Qspectre" 옵션을 끄는 것도 한 방법입니다.

Spectre mitigations in MSVC
; https://devblogs.microsoft.com/cppblog/spectre-mitigations-in-msvc/

따라서 원하는 프로젝트에 대해서만 설정 창을 통해 "Spectre Mitigation" 옵션 값을,

Qspectre_vc_1.png

"Enabled (/Qspectre)"에서 "Disabled"로 바꿔주면 링커 오류가 해결됩니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]





[최초 등록일: ]
[최종 수정일: 1/12/2020 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 



2020-05-14 02시15분
[Tamamo] 정말 도움이 됬습니다.
[손님]

1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
12163정성태2/27/2020442.NET Framework: 899. 익명 함수를 가리키는 delegate 필드에 대한 직렬화 문제
12162정성태2/28/2020528디버깅 기술: 166. C#에서 만든 COM 객체를 C/C++로 P/Invoke Interop 시 메모리 누수(Memory Leak) 발생파일 다운로드2
12161정성태2/26/2020254오류 유형: 597. manifest - The value "x64" of attribute "processorArchitecture" in element "assemblyIdentity" is invalid.
12160정성태2/26/2020321개발 환경 구성: 469. Reg-free COM 개체 사용을 위한 manifest 파일 생성 도구 - COMRegFreeManifest
12159정성태2/26/2020242오류 유형: 596. Visual Studio - The project needs to include ATL support
12158정성태2/26/2020394디버깅 기술: 165. C# - Marshal.GetIUnknownForObject/GetIDispatchForObject 사용 시 메모리 누수(Memory Leak) 발생파일 다운로드1
12157정성태2/27/2020388디버깅 기술: 164. C# - Marshal.GetNativeVariantForObject 사용 시 메모리 누수(Memory Leak) 발생 및 해결 방법파일 다운로드1
12156정성태2/25/2020276오류 유형: 595. LINK : warning LNK4098: defaultlib 'nafxcw.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
12155정성태2/25/2020309오류 유형: 594. Warning NU1701 - This package may not be fully compatible with your project
12154정성태2/25/2020257오류 유형: 593. warning LNK4070: /OUT:... directive in .EXP differs from output filename
12153정성태7/15/2020389.NET Framework: 898. Trampoline을 이용한 후킹의 한계파일 다운로드1
12152정성태2/23/2020347.NET Framework: 897. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 세 번째 이야기(Trampoline 후킹)파일 다운로드1
12151정성태2/23/2020382.NET Framework: 896. C# - Win32 API를 Trampoline 기법을 이용해 C# 메서드로 가로채는 방법 - 두 번째 이야기 (원본 함수 호출)파일 다운로드1
12150정성태2/23/2020398.NET Framework: 895. C# - Win32 API를 Trampoline 기법을 이용해 C# 메서드로 가로채는 방법파일 다운로드1
12149정성태2/20/2020456.NET Framework: 894. eBEST C# XingAPI 래퍼 - 연속 조회 처리 방법 [1]
12148정성태2/23/2020502디버깅 기술: 163. x64 환경에서 구현하는 다양한 Trampoline 기법
12147정성태2/27/2020426디버깅 기술: 162. x86/x64의 기계어 코드 최대 길이
12146정성태2/18/2020478.NET Framework: 893. eBEST C# XingAPI 래퍼 - 로그인 처리파일 다운로드1
12145정성태2/18/2020429.NET Framework: 892. eBEST C# XingAPI 래퍼 - Sqlite 지원 추가파일 다운로드1
12144정성태2/23/2020422.NET Framework: 891. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 두 번째 이야기파일 다운로드1
12143정성태2/13/2020312.NET Framework: 890. 상황별 GetFunctionPointer 반환값 정리 - x64파일 다운로드1
12142정성태2/27/2020429.NET Framework: 889. C# 코드로 접근하는 MethodDesc, MethodTable파일 다운로드1
12141정성태2/10/2020526.NET Framework: 888. C# - ASP.NET Core 웹 응용 프로그램의 출력 가로채기 [1]파일 다운로드1
12140정성태2/10/2020380.NET Framework: 887. C# - ASP.NET 웹 응용 프로그램의 출력 가로채기파일 다운로드1
12139정성태2/9/2020583.NET Framework: 886. C# - Console 응용 프로그램에서 UI 스레드 구현 방법
12138정성태2/9/2020707.NET Framework: 885. C# - 닷넷 응용 프로그램에서 Sqlite 사용 [3]파일 다운로드1
1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...