Visual Studio 2017 로 C++정적 라 이브 러 리 그림 설명 쓰기
솔 루 션 을 만 듭 니 다.많은 사람들 이 프로젝트/프로젝트 Project 와 솔 루 션 Solution 의 차 이 를 잘 모 릅 니 다.VS 에서 Project 는 기본 적 인 실행 단원 입 니 다.하나의 Solution 은 여러 개의 Project 를 포함 할 수 있 습 니 다.우리 의 정적 라 이브 러 리 는 몇 개의(lib)Project 와 하나의(exe)Project 를 포함 하여 테스트 할 것 입 니 다.솔 루 션 은 win 32 Console Application 콘 솔 을 선택 하 십시오.
형식 은 Static Library 정적 라 이브 러 리 를 선택 하고 Precompiled Header 프 리 컴 파일 헤더 옵션 을 제거 합 니 다.
헤더 파일 과 원본 파일 을 추가 합 니 다.
원본 파일.cpp 와 같 습 니 다.그 다음 에는 이렇게 해 야 합 니 다.
(.h 파일 만 추가 하고.cpp 가 없 으 면 안 됩 니 다.이 프로젝트 는 컴 파일 되 지 않 습 니 다.lib 라 이브 러 리 는 나중에 테스트 할 때'xxx.lib':cannot open file specified'와 같은 보고 가 나 옵 니 다.어떻게 알 았 는 지 묻 지 마 세 요.Orz)
(또 다른 돌 이 켜 보면 cannot open file 이 지정 한 이 유 는.lib 생 성 위치 가 잘못 되 었 기 때 문 입 니 다.Solution Explorer->Properties 속성 페이지 를 보 세 요.
->출력 방향 출력 디 렉 터 리
기본적으로 그것 이 옳 습 니 다.\Debug 디 렉 터 리 에서 어떻게 틀 릴 지 누가 알 겠 습 니까?)
그리고 코드 를 쓸 수 있 습 니 다.
// MathLib.h
#pragma once
int add(int x, int y);
// MathLib.cpp
#include "MathLib.h"
int add(int x, int y) { return x + y; }
그리고 테스트 할 프로젝트 가 필요 합 니 다.콘 솔 을 선택 하고 번역 헤드 를 이전 과 같이 제거 합 니 다.지금 우 리 는 두 개의 Projects 를 포함 한 Solution 을 얻 었 습 니 다.
테스트 코드 를 작성 하 다
// Test.cpp
#include "stdafx.h"
#include "..\MathLib\MathLib.h"
#include <iostream>
int main()
{
std::cout << add(1, 2) << std::endl;
return 0;
}
Test 에 MathLib 인용 을 추가 해 야 합 니 다.이 단계 의 실제 역할 은 IDE 가 cl 컴 파일 러 명령 행 으로 컴 파일 하도록 유도 할 때 정확 한 링크 옵션(CSAPP 는 매우 inspiring 설명 이 있 습 니 다.원본 파일\#include 헤더 파일 이후 링크 기 에 위치 하지 않 은 기 호 를 소개 하 는 것 입 니 다.라 이브 러 리 파일(정적 라 이브 러 리 의 경우 Linux 는 a 파일 Windows 는.lib)에서 이 기 호 를 찾 아 다시 찾 아야 합 니 다).이 라 이브 러 리 를 찾 는 것 이 중요 합 니 다.Solution Explorer 에 Reference 를 추가 합 니 다.그림 참조VS Solution 에 있 는 Projects 를 준비 옵션 에 밀 착 해서 선택 하면 됩 니 다.
이때 Test 의 Reference 에는 MathLib 프로젝트 가 있 습 니 다.
다음 단 계 는 cl 컴 파일 러 에 include 경 로 를 추가 합 니 다.즉,사전 컴 파일 기간 에 MathLib.h 를 어떻게 찾 아 기호 도입 을 완성 해 야 합 니까?Test Properties 속성 페이지->C++->General->Additional Include Directaries 에 포함 경 로 를 추가 합 니 다.표준 라 이브 러 리 파일 디 렉 터 리 에 추 가 된 다른(사용자 정의)헤더 파일 에 포 함 된 디 렉 터 리 입 니 다.cl 은 이 곳 에서 MathLib.h 를 찾 아야 합 니 다.MyStaticLibrary\MathLib 디 렉 터 리 추가 하기 OK 를 선택 하 십시오.
이때 모든 것 이 준비 되 었 고 F5 구성 운영 결 과 는 이런 잘못 을 보고 했다.
lib 는 유효한 win 32 응용 프로그램 이 아니 라 실행 할 수 없습니다.맞 아,나 도 원래 그것 을 실행 하려 고 하지 않 았 는데 VS Solution 에 이렇게 많은 Projects 가 어떤 것 을 실행 해 야 하 는 지 어떻게 알 아?이전의 실행 단원 이 무슨 뜻 인지 이 해 했 는 지 생각해 보 세 요.프로젝트 마다 컴 파일 된 결 과 는 실행 가능 하 다 고 생각 합 니 다.)첫 번 째 로 추 가 된 Project 는 MathLib 이기 때문에 VS 는 기본적으로 출력 을 실행 하기 때문에 틀 렸 습 니 다.Test 의 출력(Test.exe),Solution Explorer->MyStaticLibrary Properties 속성 페이지 를 실행 하도록 유도 할 방법 을 생각 합 니 다.
단일 시작 공 사 를 Test,OK 로 설정 합 니 다.
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 Visual Studio 2017 로 C++정적 라 이브 러 리 를 쓰 는 것 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#클래스 심층 접근 방법 다시 로드 및 객체 상호 작용겨울방학의 첫 번째 지식은 **구조 함수, 방법 재부팅, 대상 상호작용 **에 관한 블로그를 보실 수 있습니다. 클래스의 구조 함수는 클래스 중의 특수한 방법 특징이다. 2. 주의사항: 인삼이 있는 구조 함수를 호출...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.