Visual Studio 2017 로 C++정적 라 이브 러 리 그림 설명 쓰기

4322 단어 visualstudio2017
바퀴 를 만 드 는 것 은 재 미 있 는 일이 다.VS 는 강력 한 도구 로 초대형 공 사 를 감당 할 수 있다.그러나 솔직히 그렇게 크 지 않 은 프로젝트 를 배치 하 는 것 은 그리 우호 적 이지 않다.간단 한 정적 라 이브 러 리 를 구축 하 는 정확 한 자 세 를 보 여 줍 니 다.(가 는 김 에 도 리 를 좀 가르쳐 주세요.
솔 루 션 을 만 듭 니 다.많은 사람들 이 프로젝트/프로젝트 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++정적 라 이브 러 리 를 쓰 는 것 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기