[英]How to share code between projects in Visual C++ or “unresolved external symbol” for static variables in static lib
[英]How do I share C++ source code files between projects in Visual Studio?
我正在編寫一個跨平台的應用程序。 一個版本將在Win32下運行,第二個版本將在Windows Phone上運行。
我想重用我的C ++核心-特別是里面沒有平台依賴項,僅STL。 我要這樣做,我想在兩個項目中使用相同的源文件:靜態Win32庫(.lib)和Windows Phone組件(C ++ / CLI)。
如何配置這兩個項目以使用完全相同的源文件和頭文件?
好,讓我們舉個例子。 假設我有一個項目:
MyApp.Library [win32 lib]
myClass.cpp
myClass.h
該庫被編譯為.DLL文件,然后導入Win32應用程序中:
MyApp.Win32App [win32 C#]
由於Win32在二進制級別與Windows Phone不兼容,因此我無法直接使用該庫。 但是由於該庫僅使用STL,所以我可以創建Windows Phone組件,將其所有源代碼放在此處並進行構建。
MyApp.Component [Windows Phone component]
myClass.cpp
myClass.h
我希望這兩個文件與庫中使用的文件完全相同。 我應該如何組織該項目以達到這種效果?
您可以將公共位置的源代碼添加到多個項目中。 我經常這樣做; 我在公共目錄中有代碼,該目錄在目錄層次結構中與大多數項目文件處於同一級別。 只需將common目錄中的.h和.cpp文件添加到您的各個項目中即可。
我確實注意到,如果您將網絡驅動器用作通用源,VisualStudio會有些怪異和困難,所以我不這樣做。 但是,只要所有源代碼都在本地磁盤上,並且IDE知道在哪里可以找到它們,那么在很多項目中使用相同的源文件就沒有問題。
一種方法是將所有.hpp和.cpp文件放入單獨的文件夾-稱為“共享”。
然后在解決方案配置屬性內添加一個附加的包含目錄-該目錄必須是相對路徑。
然后, 僅將來自該共享文件夾的.cpp文件添加到您的項目中
注意! 如果在共享文件夾的.cpp文件中包含“ stdafx.h”,則將其注釋掉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.