1. 程式人生 > 其它 >VS2019 編譯 MathGL2.4.4

VS2019 編譯 MathGL2.4.4

技術標籤:重新編譯c++

需求用VS2019編譯mathGL

軟體版本

cmake-3.19.1-win64-x64
zlib-1.2.11,原始碼
lpng-1.6.37,原始碼
MathGL-2.4.4,原始碼
VS2019社群版,工具集:Visual Studio 2019 (v142)、SDK- 10.0.18362.0

編譯步驟:

  1. 由於Math G了依賴依賴於zlib、lpng兩個庫,所以首先用VS2019,將兩個庫分別編譯好,本此主要是編譯成 zlibstatic.lib 、 zlibstaticd.lib和 libpng16_static.lib 、libpng16_staticd.lib
  2. 編譯好後,使用Cmake,按照步驟配置完成, 第一次Configure後,會彈框(error in configuration process project files may be invalid)這主要是找不到依賴的檔案,請在對應位置加上zlib和lpng的路徑
  3. 新增好後 再次Configure應該會有連個警告忽略 。如: Building of translation files was disabled, because xgettext, msgmerge, msgcat or msgfmt was not found. Current translations will be just coped.
  4. Configuring done後,Generate 如無錯誤後可以看到Generating done
  5. 以上完成後,就可以去VS進行編譯了

編譯中可能出現的問題:

  1. 無法開啟包括檔案: “pnglibconf.h”: No such file or directory;點選這個錯誤,在程式碼中他有告訴你怎麼做。主要原因是標頭檔案不在,Camke的時候被改名字了,找到他,copy過來,然後改名就好了。類似的幾個都自己去原始碼中去找對應的標頭檔案即可。
  2. error C2065: “M_LN10”: 未宣告的識別符號libpng16_static.lib這個錯 誤主要是麼有申明,在對應的檔案中新增 #define_USE_MATH_DEFINES
  3. mgl_example工程裡full_test.cpp裡面的的錯誤在這裡插入圖片描述
    a、classData沒有成員Save,有報錯,但並沒有影響編譯(不明白到底是什麼意思,沒做處理)
    b、常量中存在換行符,沒搞明白,在,號加了一個空格就ok 了;
//mgl_create_cpp_font(gr->Self(),L"!-~,¡-ÿ,̀-̏,Α-ω,ϑ,ϕ,ϖ,ϰ,ϱ,ϵ,А-я,ℏ,ℑ,ℓ,ℜ,←-↙,∀-∯,≠-≯,⟂");
	mgl_create_cpp_font(gr->Self(), L"!-~,¡-ÿ,̀-̏ ,Α-ω,ϑ,ϕ,ϖ,ϰ,ϱ,ϵ,А-я,ℏ,ℑ,ℓ,ℜ,←-↙,∀-∯,≠-≯,⟂");
		//mgl_create_cpp_font(gr->Self(),L"rr");

參考資料:
1、http://element-ui.cn/article/show-3861.aspx
2、https://blog.csdn.net/firecityplans/article/details/77972712