2011-07-03 115 views
1

我Ç項目在Microsoft Visual Studio 2010.I編譯過程中得到了一些鏈接錯誤我收到以下錯誤:Makefile文件在Microsoft Visual Studio 2010

error LNK2019: unresolved external symbol _CreateRelation referenced in function _main 

CreateRelation是在一個功能我項目。以下是我的問題:

  1. 我認爲這是一些依賴關係問題。我將如何在IDE中設置這些依賴關係規則?

  2. 請你告訴我,那是永遠不可能建立一個項目,並設置鏈接規則,多少較大,不使用生成文件?

[編輯]

  relation.h 

      void createRelation(LIST); 

      mainfile.c 
      #include relation.h 
      #include xyz.h 
      . 
      . 
      . 


      int main(){ 
      LIST Relation1; 
      some codes // 
      createRelation(Relation1); 
      some code // 

        } 

creatRelation()realation.h.

EDIT定義的函數2

  In the function containing main 
+0

顯示一些代碼。如何聲明CreateRelation()?它是在報頭包括在由含有主'()'模塊?在問題C,C++,或兩者的語言?是包含CreateRelation的'定義模塊()在相同或不同的項目'? –

+0

** CreateRelation()**在頭文件中聲明,並且該頭文件包含在包含main函數的文件中。這是一個c項目。並且定義函數的文件位於同一個項目中。 – thetna

回答

2

有幾種方式來設置的依賴關係的構建處理。

如果你引用的代碼是在一個分項目,你可以簡單地告訴VS構建依賴性。您可以通過右鍵單擊該項目並選擇項目依賴關係來完成此操作。然後,您可以檢查在構建該項目之前應該構建的所有項目。

VS2010的另一個漂亮的功能是屬性表。在較舊的VS版本中,你必須告訴編譯器每個項目的包含路徑和lib路徑。現在您可以爲您正在使用的每個庫創建屬性表,然後將其添加到項目中。這樣你只需創建一次屬性表,並可以在很多項目中使用它。

因此,如果代碼是在另一個項目中,是不是一個子項目,你必須設置的lib路徑,包括路徑通過這些屬性表。您可以通過點擊查看 - >其他Windows的>物業經理

如果不引用任何外部項目顯示您的項目中使用的屬性表。這個問題很可能是由於您沒有實現您聲明的功能而導致的。所以編譯器知道函數原型,並且不會抱怨,但鏈接器找不到該符號的實現。

我希望幫助

- 編輯 -

既然你說,實現在同一個文件中的主要功能我會懷疑的聲明和定義函數的簽名做不匹配。你是否收到關於隱式函數聲明的警告?

那是一個複製粘貼錯誤? CreateRealtion(x);與CreateRelation(x);

+0

是的,我收到了一些警告,但不是你在這裏陳述的。我不確定你是否理解我的意思。在我的項目中,它的文件數量非常大。聲明的函數在** relation.h **中,它在** realtion.c **中定義。頭文件** relation.h **包含在包含main函數的源文件中。 – thetna

+0

對不起,是複製粘貼錯誤。:)。兩者都是一樣的。 – thetna

+0

我假設你的意思是relation.c 這個文件在VS-Project的源代碼文件夾中嗎?它是否顯示在源文件下的項目瀏覽器中? – Compuholic