2013-09-10 104 views
1

情況如下:我有一個程序的源代碼(我們稱它爲programA)(用C和C++編寫),以及CMakeLists.txt和CTestConfig.cmake文件。我已經使用CMake的圖形用戶界面安裝了programA,並且很明顯,它工作正常。它創建了.exe文件(我正在使用Windows 7操作系統)。如何將cmake項目轉換爲Visual Studio等效項?

問題是,現在,我被要求編輯程序(因此,我必須能夠編輯代碼並在做出更改時對其進行排除)。我也需要編譯它,但不是在.exe中,而是在.dll中,所以我可以將它添加到我們擁有的網站中。

我已經在論壇上看到,如果需要,CMake可以將programA編譯爲.dll,但由於需要進行一些更改,因此我認爲CMake調試並不像完全使用VS那樣有用和簡單。從我從CMake語言知道的很少,CMakeLists.txt主要用於檢查用戶的操作系統以及添加一些庫,以防未找到它們。

我不得不承認我不懂編程CMake指令,因爲我一直在使用ASP.NET,C,C++和C#。然後,我的想法是隻嘗試在Visual Studio 2010中工作,而不是使用cmake,所以一旦我將程序「改編」爲VS並且可以使用VS編譯,我就可以開始工作了。所以我的問題是我如何執行相同的任務CMake只使用Visual Studio(是否有任何方法在VS中實現CMake指令?),VS可以通過接收類似於CMake.txt文件的參數進行編譯(儘管它需要翻譯成另一種語言)?

要跳過CMake的使用,我嘗試將源代碼複製到VS中的新項目。但是,由於編譯時不使用CMake指令,因此會出現多個錯誤,其中大多數錯誤與某些headers.h無法找到(因爲它們可能位於子文件夾中)有關。並且有很多子文件夾將路徑添加到預定義的搜索目錄中,這需要很長時間。

對不起,我不能在我的解釋中更精確。我擅長編寫自己的小項目,但這是我第一次在其他項目上工作。請不要猶豫,要問是否有什麼不正確的理解

我會很感激,你可以給任何建議/建議/指導。

回答

2

爲了一個DLL,使用add_library命令和共享關鍵字

add_library(mylib SHARED ${files}) 

這是很容易與CMake的,不回去的視覺,這將是很難在年底

+0

感謝您的意見 – EPApro

1

的好新聞

幸運的是,cmake can generate VS Projects automaticaly for you(本教程是專門針對OpenTissue的,但步驟1到3對您而言應該是相同的)。

的[不太]壞消息

根據項目的複雜性,通過cmake automaticaly產生VS項目可以得到相當討厭,到模糊的點。例如,它將使用機器的特定路徑將任何庫依賴項硬鏈接,因此該項目肯定不會在整個設置中移植。在任何情況下,這就是預期的行爲,因爲支持這個生成器的主要思想是簡單地使它工作,從而允許用戶使用MSVC輕鬆編譯項目,所以在這裏沒有太多可以做的事情。儘管如此,它應該可以在你的機器上運行,並且肯定會成爲你的一個很好的起點,你可以自己從頭開始創建一個項目,將相關部分從自動生成的版本中複製出來。

+0

非常感謝您的回覆。我會閱讀你發佈的類似問題,看看我是否可以從所有這些信息開始 – EPApro

相關問題