Index: trunk/ab5.0/abdev/compiler_x64/MakePeHdr.cpp
===================================================================
--- trunk/ab5.0/abdev/compiler_x64/MakePeHdr.cpp	(revision 633)
+++ trunk/ab5.0/abdev/compiler_x64/MakePeHdr.cpp	(revision 643)
@@ -109,5 +109,14 @@
 
 	// 静的リンク
+	compiler.PreStaticLink( compiler.staticLibraries );
 	compiler.StaticLink( compiler.staticLibraries );
+
+	// 依存関係の解決
+	ActiveBasic::Common::Lexical::ResolveErrors resolveErrors;
+	compiler.GetObjectModule().Resolve( resolveErrors );
+	BOOST_FOREACH( const ResolveError &resolveError, resolveErrors )
+	{
+		compiler.errorMessenger.Output( ErrorInfo( 13, resolveError.GetTargetItemName(), -1 ) );
+	}
 
 
@@ -134,5 +143,5 @@
 	{
 		ActiveBasic::Compiler::LexicalAnalyzer::CollectEnums(
-			compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+			compiler.GetCurrentSource().GetBuffer(),
 			compiler.enumInfoCollection
 		);
@@ -147,5 +156,5 @@
 	// 名前空間情報を取得
 	ActiveBasic::Compiler::LexicalAnalyzer::CollectNamespaces(
-		compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+		compiler.GetCurrentSource().GetBuffer(),
 		compiler.GetObjectModule().meta.GetNamespaces()
 	);
@@ -154,5 +163,5 @@
 	{
 		ActiveBasic::Compiler::LexicalAnalyzer::CollectDelegates(
-			compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+			compiler.GetCurrentSource().GetBuffer(),
 			compiler.GetObjectModule().meta.GetDelegates()
 		);
@@ -170,5 +179,5 @@
 	//     ※オブジェクトの内容までは取得しない
 	ActiveBasic::Compiler::LexicalAnalyzer::CollectClassesForNameOnly(
-		compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+		compiler.GetCurrentSource().GetBuffer(),
 		compiler.GetObjectModule().meta.GetClasses()
 	);
@@ -176,5 +185,5 @@
 	//TypeDef情報を収集
 	ActiveBasic::Compiler::LexicalAnalyzer::CollectTypeDefs(
-		compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+		compiler.GetCurrentSource().GetBuffer(),
 		compiler.GetObjectModule().meta.GetTypeDefs()
 	);
@@ -191,5 +200,5 @@
 	//定数情報を取得
 	ActiveBasic::Compiler::LexicalAnalyzer::CollectConsts(
-		compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+		compiler.GetCurrentSource().GetBuffer(),
 		compiler.GetObjectModule().meta.GetGlobalConsts(),
 		compiler.GetObjectModule().meta.GetGlobalConstMacros()
@@ -199,5 +208,5 @@
 	compiler.SetCompilingClass( NULL );
 	ActiveBasic::Compiler::LexicalAnalyzer::CollectProcedures(
-		compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+		compiler.GetCurrentSource().GetBuffer(),
 		compiler.GetObjectModule().meta.GetUserProcs(),
 		compiler.GetObjectModule().meta.GetDllProcs()
@@ -206,5 +215,5 @@
 	// クラス情報を取得（※注 - CollectProceduresの後に呼び出す）
 	ActiveBasic::Compiler::LexicalAnalyzer::CollectClasses(
-		compiler.GetObjectModule().GetCurrentSource().GetBuffer(),
+		compiler.GetCurrentSource().GetBuffer(),
 		compiler.GetObjectModule().meta.GetClasses()
 	);
@@ -245,20 +254,20 @@
 	if(pSub_System_GetEip=GetSubHash("_System_GetEip",1)){
 		pSub_System_GetEip->Using();
-		pSub_System_GetEip->ThisIsSystemProc();
+		pSub_System_GetEip->ThisIsAutoGenerationSystemProc();
 	}
 
 	if(pSub_System_InitDllGlobalVariables=GetSubHash("_System_InitDllGlobalVariables",1)){
 		pSub_System_InitDllGlobalVariables->Using();
-		pSub_System_InitDllGlobalVariables->ThisIsSystemProc();
+		pSub_System_InitDllGlobalVariables->ThisIsAutoGenerationSystemProc();
 	}
 
 	if(pSub_System_InitStaticLocalVariables=GetSubHash("_System_InitStaticLocalVariables",1)){
 		pSub_System_InitStaticLocalVariables->Using();
-		pSub_System_InitStaticLocalVariables->ThisIsSystemProc();
+		pSub_System_InitStaticLocalVariables->ThisIsAutoGenerationSystemProc();
 	}
 
 	if(pSub_System_Call_Destructor_of_GlobalObject=GetSubHash("_System_Call_Destructor_of_GlobalObject",1)){
 		pSub_System_Call_Destructor_of_GlobalObject->Using();
-		pSub_System_Call_Destructor_of_GlobalObject->ThisIsSystemProc();
+		pSub_System_Call_Destructor_of_GlobalObject->ThisIsAutoGenerationSystemProc();
 	}
 
@@ -483,4 +492,7 @@
 	{
 		// 静的リンクライブラリ
+
+		// 外部参照をlibから取り除く
+		ActiveBasic::Common::Environment::SetRemoveExternalMark( true );
 
 		// 格納先ディレクトリを作る
