2010-02-04 2 views
1

c 프로젝트에 .lib를 추가했습니다.Visual C++에 정적 lib (.lib)를 포함 할 수 없습니다.

그러나 여전히 .c에서 .lib에 정의 된 것을 사용할 수 없습니다.

main() 
{ 
    structure_defined_inthat_lib c; 
    ... 

이 방법으로 .lib를 추가했습니다.

마우스 오른쪽 단추로 클릭하십시오. , 속성, 링커, 입력,

및 "추가 종속성"에서 "D:\path\name.lib"을 입력하십시오.

뭐가 잘못 되었나요?

답변

3

해당 라이브러리의 내용을 정의하는 헤더 파일을 해당 항목을 사용하려는 코드에 포함시켜야합니다. 헤더 파일은 C++ -> General-> Additional include 디렉토리에 지정된 경로 중 하나에 있어야합니다. 헤더에 경로를 추가해야 할 수도 있습니다.

또한 링커 설정의 "추가 종속성"에서 라이브러리의 파일 이름 만 지정하고 "추가 라이브러리 디렉토리"에서 해당 파일의 경로를 제공하십시오.

+0

나는'#include '을 시도했지만보고했다 : 그 파일이나 디렉토리가 없다. – user198729

+0

특히 두 번째 단락의 위쪽 괘선. 요점은 다양한 구성 (예 : 라이브러리의 디버그 버전을 프로젝트의 디버그 빌드로 연결)에 라이브러리 폴더를 변경할 수 있지만 라이브러리 이름은 동일하게 유지할 수 있다는 것입니다. VC++에서 기본적으로 두 개의 구성 프로젝트 (디버그 및 릴리스)를 만드는 것을 제외하고는 단일 구성 프로젝트의 경우에도 라이브러리 이름의 경로가 전혀 허용되지 않는 이유를 모르겠습니다. – Steve314

+0

"C/C++"속성에서 "General"과 "Additional Include Directories"를 찾으십시오. - 많은 라이브러리가 헤더를 소스 (동일 폴더가 아닌 형제 폴더가 아닌)로 유지하지만 라이브러리는 분리되어 있습니다 debug/release 폴더는 컴파일러의 출력 (객체 파일 및 기타 중간 항목 포함)을 포함하므로 include 경로와 라이브러리 경로가 별도로 유지됩니다. – Steve314

0

라이브러리에 정의 된 기능을 사용하려면 라이브러리와 헤더가 모두 필요합니다. 함수 시그니처를 알고있는 경우 extern을 사용하여 함수 시그니처를 선언 할 수도 있습니다.

관련 문제