2014-02-18 4 views
0

Visual Studio에서 "Framework"라는 C 프로젝트가 있습니다.헤더 및 소스 파일을 참조하는 Visual Studio

프레임 워크 프로젝트는 서로 다른 프로젝트에서 공유해야하는 공통 코드를 보유하고 있어야합니다.

프레임 워크의 코드를 사용해야하는 또 다른 프로젝트 (A라고 부름)가 있습니다.

프레임 워크 프로젝트에 DAL.h라는 헤더가 있고 그 안에 OpenFile이라는 함수가 선언되어 있다고 가정 해 보겠습니다.이 함수는 DAL.c에서 구현됩니다.

내가 OpenFile을 내 프로젝트에 DAL.h을 포함하고 사용하려고하지만 난 다음 오류 받고 있어요 : 나는 컴파일러는 OpenFile의 구현을 찾지 못했습니다 것을 이해 할

_OpenFile되지 않은 외부 기호를.

제 질문은 여기에 설명 된 사례에서 가장 좋은 방법은 무엇입니까?

기존 항목을 추가하고 DAL.c를 프로젝트에 추가해야합니까? (이 오류를 수정 ..)

DAL.c containg 폴더를 "추가 원본 폴더"에 추가하려고 시도했지만 도움이되지 않았습니다.

고마워, 마이클.

답변

1

OpenFile 함수의 컴파일 된 코드를 사용하려면 어딘가에 있어야합니다.

당신은 두 가지 옵션을 갖고있는 것 같다 :이 프로젝트의 일환으로 컴파일 될 수 있도록 컴파일 된 코드는 바이너리의 일부가 될하려면

1), 소스 파일을 포함해야합니다.

2)이 프로젝트를 프로젝트에 내장하고 싶지 않고 "다른 프로젝트간에 공유해야하는 공통 코드"라고 말하지 않은 사운드에서 프레임 워크 프로젝트 "라이브러리로 컴파일해야합니다. 어떤 경우에는 프로젝트가 OpenFile 호출을 라이브러리의 구현에 연결할 수 있도록 DAL.h 헤더 파일 만 포함하고 "프레임 워크 프로젝트"라이브러리를 프로젝트에 가져와야합니다.

+0

OpenFile의 소스 코드를 내 바이너리의 일부로 만들고 싶습니다. 추가 라이브러리를 사용하고 싶지 않습니다. (dll을 사용하고 싶지 않습니다.) 프로젝트의 일부로 소스 파일을 포함하는 유일한 방법은 있습니까? 그 종류의 추한 솔루션 .. 컴파일러가 직접 소스 코드를 찾을 수있는 방법이 없습니까? 헤더 파일을 추가했기 때문에 .. – Michael

+1

@MichaelEngstler : 소스를 프로젝트의 일부로 사용하려면 프로젝트의 소스 부분을 만들어야합니다. 소스 파일에는 헤더 파일이 포함되며 헤더 파일에는 소스 파일이 포함되지 않습니다. 또한, 당신이 원하지 않는 dll을 사용할 수없는 특별한 이유가 있습니까? 귀하의 상황은 거의 그들이 설계된 것입니다, 그것은 당신의 삶을 훨씬 쉽게 만들 수 있습니다 ... – parrowdice

관련 문제