mozilla

리비전 비교

Creating Custom Firefox Extensions with the Mozilla Build System

Change Revisions

리비전 191247:

리비전 191247 Jeongsw

리비전 191248:

리비전 191248 Jeongsw

제목:
Creating Custom Firefox Extensions with the Mozilla Build System
Creating Custom Firefox Extensions with the Mozilla Build System
슬러그:
Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System
Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System
태그:
Extensions, Add-ons, XPCOM, "Build documentation"
Extensions, Add-ons, XPCOM, "Build documentation"
내용:

리비전 (191247):
리비전 (191248):
n164    <h4 name="Source_Files">n164    <h4 name=".EC.86.8C.EC.8A.A4_.ED.8C.8C.EC.9D.BC">
165      Source Files165      소스 파일
166    </h4>
167    <p>166    </h4>
168      Now it’s time to create the makefile and source files in th
>e <tt>src/</tt> subdirectory. If you're implementing interfaces t 
>hat you've described using IDL, the easiest way to do this is to  
>leave the <tt>src/</tt> directory empty and run <tt>make</tt> on  
>the <tt>public/</tt> directory only; this will be explained short 
>ly. 
169    </p>167    <p>
168      이제 <tt>src/</tt> 디렉토리에 makefile과 소스 파일들을 생성할 차례입니다. 만약 당신이 
 >IDL로 표현한 인터페이스를 구현한다면, 가장 쉬운 방법은 <tt>src/</tt> 디렉토리는 비워두고 <tt>pub
 >lic/</tt> 디렉토리에서만 <tt>make</tt>를 실행하는 것입니다; 이것에 대해서 잠시 후에 설명하겠습니다
 >.
170    <p>169    </p>
171      Then open the generated header file for your interface from
> <tt>/mozilla/$(MOZ_OBJDIR)/dist/include/myextension/</tt>. It co 
>ntains stubs for the component .H and .CPP files that you can cop 
>y and paste into your implementation files. All you have to do is 
> fill in the implementation stubs in the C++ file and you’re good 
> to go. 
172    </p>170    <p>
171      그리고 <tt>/mozilla/$(MOZ_OBJDIR)/dist/include/myextension/</t
 >t>에서 생성된 헤더 파일을 엽니다. 여기에는 당신이 구현하는 파일에 복사하여 붙여넣을 수 있는 .H 파일과 .CPP
 > 파일에 대한 내용이 담겨있습니다. 당신이 해야될 일은 C++ 파일의 내용을 구현하는 게 전부입니다.
173    <p>172    </p>
174      Here’s an example of the makefile you need to place into yo173    <p>
>ur <tt>src</tt> directory: 
174      여기 당신이 <tt>src</tt> 디렉토리에 생성해야 될 makefile에 대한 예입니다:
n207# <span class="highlightred">NOTE: If you are coding against the n207# <span class="highlightred">알림: 만약 1.8 branch나 trunk가 아니라면 링커 플래
>1.8.0 branch (not 1.8 branch or trunk), the</span>>그 문제로</span>
208# <span class="highlightred">above line won't work, due to linker208# <span class="highlightred">인하여 윗줄의 내용은 제대로 작동하지 않을 것입니다.</span>
> flag issues.</span> Use the following > 
209# variables instead:209# 대신 다음에 나오는 변수를 사용하시기 바랍니다:
n215# Unfortunately, using MOZ_COMPONENT_LIBS links against xpcom_corn215# 유감스럽게도, xpcom_core에 대해 MOZ_COMPONENT_LIBS 링크를 사용하는 것은,
>e, which means 
216# your components will not work in future versions of Firefox.216# 당신의 컴포넌트가 Firefox 차기 버전에서는 동작하지 않는다는 것을 의미합니다.
t218    <p>t
219      The <code>REQUIRES</code> section tells <tt>make</tt> which
> modules your components uses. This causes the relevant subdirect 
>ories of <tt>/mozilla/$(MOZ_OBJDIR)/dist/include/</tt> to be adde 
>d to the C++ compiler's include path. If you’re including Mozilla 
> headers and the compiler isn’t finding them, it could well mean  
>that you haven’t listed all of the necessary modules here. <code> 
>CPPSRCS</code> lists the source files that need to be built. 
220    </p>218    <p>
219      <code>REQUIRES</code> 부분은 당신의 컴포넌트가 어떤 모듈을 사용하는 지를 <tt>make
 ></tt>에게 알려줍니다. 이것은 <tt>/mozilla/$(MOZ_OBJDIR)/dist/include/</tt>의
 > 관련된 하위 디렉토리가 C++ 컴파일러의 include 경로에 추가되도록 합니다. 만약 당신이 Mozilla 헤더를
 > 포함(include)시켰음에도 컴파일러가 이를 찾지 않는다면, 당신이 여기서 필요한 모든 모듈들을 지정하지 않았음을
 > 의미합니다. <code>CPPSRCS</code> 부분은 빌드할 필요가 있는 소스 파일들을 나타냅니다.
221    <p>220    </p>
222      In this example, the first two files contain the implementa221    <p>
>tion of the extension’s two components. The final file, <tt>myExt 
>ension.cpp</tt>, contains the code necessary to register these co 
>mponents, as described in the next section. 
222      이 예에서, 처음 두 파일은 확장기능의 두가지 컴포넌트를 구현하고 있으며, 마지막 파일 <tt>myExte
 >nsion.cpp</tt>는 이 컴포넌트들을 등록하는데 필요한 코드를 포함하고 있습니다. 이것은 다음 장에서 설명합니
 >다.

이력으로 돌아가기