Compile JASPER Slowly And Carefully

ㄚ琪在編譯6. JASPER (JPEG-2000 library)這個步驟又碰釘了,這回是轉檔失敗,用Microsoft Visual C++ 2010 Express開啟jasper-1.900.1srcmsvc中的jasper.dsw,竟然給我報dsp升級失敗,可恨,Google到使用vcupgrade.exe來轉檔看看,又給我報這樣的錯誤:

vcupgrade imgcmp.dsp
Microsoft (R) Visual C++ 專案轉換公用程式 – 版本 10.00.30319
Copyright (C) Microsoft Corporation. All rights reserved.

Converting project file ‘D:sourceCjasper-1.900.1srcmsvcimgcmp.dsp’.
Unable to convert project.
Please make sure this is a valid Visual C++ 6.0 project.

突然之間無計了,花了不少時間Google,後來只好先休息一下了。

休息了幾個小時候,註不是真的休息,而是換了個另一隻程式來工作而已,

沒多久突然有一個想法,原文說可以轉換,表示他很有可能真的轉換過了,不過怎會有這篇文章,而且在4. IJG JPEG library這裡他有提到Visual C++ 2008,似乎跟其他的主題又有些詭異,另外ㄚ琪Google “dsp vcxproj”時,Goolge都會再一次問你要查”dsp vcproj”嗎?ㄚ琪開始追根查一下vcxproj跟vcproj的一些差異,才發現vcxproj是2010的版本才開始有的,2008以前的都是vcproj,嗯,看來這個轉檔很有可能只能轉成2008的,所以ㄚ琪只好索性在另一台電腦上安裝Microsoft Visual C++ 2008 Express Edition,這一次真是猜對了,中間過程有一些警告,但是轉檔成功了,之後ㄚ琪再把它移回來用Microsoft Visual C++ 2010 Express來開jasper.sln,轉檔成功了,所以ㄚ琪可以繼續進行這裡的分享囉。

2011-10-05_170332

1.這裡的步驟敘述說要改什麼組態的,但是在vs10裡頭,轉檔完就是預設的多執行緒偵錯,都不用動喔。

2011-10-05_170959

2.不用管64-bit的操作

3.建置,建置紀錄如下:

—— 已開始建置: 專案: libjasper, 組態: Debug Win32 ——
ras_enc.c
ras_dec.c
ras_cod.c
pnm_enc.c
d:sourcecjasper-1.900.1srclibjasperpnmpnm_enc.c(378): warning C4996: ‘sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(371) : 請參閱 ‘sprintf’ 的宣告
pnm_dec.c
d:sourcecjasper-1.900.1srclibjasperpnmpnm_dec.c(121): warning C4013: ‘jas_eprintf’ 未定義; 假設 extern 傳回整數
d:sourcecjasper-1.900.1srclibjasperpnmpnm_dec.c(359): warning C4244: ‘=’ : 將 ‘int_fast64_t’ 轉換為 ‘jas_seqent_t’,由於型別不同,可能導致資料遺失
pnm_cod.c
pgx_enc.c
pgx_dec.c
pgx_cod.c
mif_cod.c
d:sourcecjasper-1.900.1srclibjaspermifmif_cod.c(282): warning C4013: ‘jas_eprintf’ 未定義; 假設 extern 傳回整數
jpg_val.c
jpg_dummy.c
d:sourcecjasper-1.900.1srclibjasperjpgjpg_dummy.c(91): warning C4013: ‘jas_eprintf’ 未定義; 假設 extern 傳回整數
jpc_util.c
d:sourcecjasper-1.900.1srclibjasperjpcjpc_util.c(99): warning C4996: ‘strncpy’: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(188) : 請參閱 ‘strncpy’ 的宣告
d:sourcecjasper-1.900.1srclibjasperjpcjpc_util.c(102): warning C4996: ‘strtok’: This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(197) : 請參閱 ‘strtok’ 的宣告
d:sourcecjasper-1.900.1srclibjasperjpcjpc_util.c(104): warning C4996: ‘strtok’: This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(197) : 請參閱 ‘strtok’ 的宣告
d:sourcecjasper-1.900.1srclibjasperjpcjpc_util.c(116): warning C4996: ‘strncpy’: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(188) : 請參閱 ‘strncpy’ 的宣告
d:sourcecjasper-1.900.1srclibjasperjpcjpc_util.c(119): warning C4996: ‘strtok’: This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(197) : 請參閱 ‘strtok’ 的宣告
d:sourcecjasper-1.900.1srclibjasperjpcjpc_util.c(122): warning C4996: ‘strtok’: This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(197) : 請參閱 ‘strtok’ 的宣告
jpc_tsfb.c
d:sourcecjasper-1.900.1srclibjasperjpcjpc_tsfb.c(124): warning C4013: ‘jpc_tsfb_analyze2’ 未定義; 假設 extern 傳回整數
d:sourcecjasper-1.900.1srclibjasperjpcjpc_tsfb.c(151): warning C4013: ‘jpc_tsfb_synthesize2’ 未定義; 假設 extern 傳回整數
jpc_tagtree.c
jpc_t2enc.c
jpc_t2dec.c
jpc_t2cod.c
jpc_t1enc.c
d:sourcecjasper-1.900.1srclibjasperjpcjpc_t1enc.c(141): warning C4018: ‘<‘ : signed/unsigned 不相符
jpc_t1dec.c
d:sourcecjasper-1.900.1srclibjasperjpcjpc_t1dec.c(243): warning C4013: ‘jas_eprintf’ 未定義; 假設 extern 傳回整數
正在產生程式碼…
正在編譯…
jpc_t1cod.c
d:sourcecjasper-1.900.1srclibjasperjpcjpc_t1cod.c(267): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘float’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_t1cod.c(269): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘float’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_t1cod.c(273): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘float’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_t1cod.c(275): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘float’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_t1cod.c(277): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘float’,由於型別不同,可能導致資料遺失
jpc_qmfb.c
jpc_mqenc.c
jpc_mqdec.c
jpc_mqcod.c
jpc_mct.c
jpc_math.c
jpc_enc.c
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(797): warning C4244: ‘=’ : 將 ‘jpc_flt_t’ 轉換為 ‘uint_fast32_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(961): warning C4996: ‘sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(371) : 請參閱 ‘sprintf’ 的宣告
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(1033): warning C4244: ‘=’ : 將 ‘uint_fast16_t’ 轉換為 ‘uint_fast8_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(1034): warning C4244: ‘=’ : 將 ‘uint_fast16_t’ 轉換為 ‘uint_fast8_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(1392): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘uint_fast32_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(1396): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘uint_fast32_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(1399): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘uint_fast32_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2296): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2305): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2328): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2388): warning C4018: ‘>’ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2389): warning C4018: ‘>’ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2391): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2393): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2428): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2437): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2470): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2606): warning C4018: ‘<‘ : signed/unsigned 不相符
d:sourcecjasper-1.900.1srclibjasperjpcjpc_enc.c(2612): warning C4018: ‘<‘ : signed/unsigned 不相符
jpc_dec.c
jpc_cs.c
d:sourcecjasper-1.900.1srclibjasperjpcjpc_cs.c(691): warning C4244: ‘函式’ : 將 ‘uint_fast16_t’ 轉換為 ‘uint_fast8_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_cs.c(825): warning C4244: ‘函式’ : 將 ‘uint_fast16_t’ 轉換為 ‘uint_fast8_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_cs.c(922): warning C4244: ‘函式’ : 將 ‘uint_fast16_t’ 轉換為 ‘uint_fast8_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_cs.c(1283): warning C4244: ‘函式’ : 將 ‘uint_fast16_t’ 轉換為 ‘uint_fast8_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjpcjpc_cs.c(1288): warning C4244: ‘函式’ : 將 ‘uint_fast16_t’ 轉換為 ‘uint_fast8_t’,由於型別不同,可能導致資料遺失
jpc_bs.c
jp2_enc.c
d:sourcecjasper-1.900.1srclibjasperjp2jp2_enc.c(347): warning C4996: ‘sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(371) : 請參閱 ‘sprintf’ 的宣告
jp2_dec.c
jp2_cod.c
d:sourcecjasper-1.900.1srclibjasperjp2jp2_cod.c(269): warning C4244: ‘=’ : 將 ‘uint_fast64_t’ 轉換為 ‘uint_fast32_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperjp2jp2_cod.c(270): warning C4244: ‘=’ : 將 ‘uint_fast64_t’ 轉換為 ‘uint_fast32_t’,由於型別不同,可能導致資料遺失
jas_version.c
jas_tvp.c
jas_tmr.c
jas_string.c
d:sourcecjasper-1.900.1srclibjasperbasejas_string.c(94): warning C4996: ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(105) : 請參閱 ‘strcpy’ 的宣告
jas_stream.c
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(285): warning C4996: ‘open’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _open. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludeio.h(312) : 請參閱 ‘open’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(368): warning C4996: ‘tmpnam’: This function or variable may be unsafe. Consider using tmpnam_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(344) : 請參閱 ‘tmpnam’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(372): warning C4996: ‘open’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _open. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludeio.h(312) : 請參閱 ‘open’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(383): warning C4996: ‘unlink’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _unlink. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(299) : 請參閱 ‘unlink’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(422): warning C4996: ‘setmode’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _setmode. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludeio.h(314) : 請參閱 ‘setmode’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(556): warning C4996: ‘vsprintf’: This function or variable may be unsafe. Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(371) : 請參閱 ‘vsprintf’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(1093): warning C4996: ‘read’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _read. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludeio.h(313) : 請參閱 ‘read’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(1099): warning C4996: ‘write’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _write. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludeio.h(318) : 請參閱 ‘write’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(1105): warning C4996: ‘lseek’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _lseek. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludeio.h(310) : 請參閱 ‘lseek’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(1112): warning C4996: ‘close’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _close. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludeio.h(302) : 請參閱 ‘close’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_stream.c(1114): warning C4996: ‘unlink’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _unlink. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(299) : 請參閱 ‘unlink’ 的宣告
jas_seq.c
d:sourcecjasper-1.900.1srclibjasperbasejas_seq.c(391): warning C4996: ‘fscanf’: This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(253) : 請參閱 ‘fscanf’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_seq.c(393): warning C4996: ‘fscanf’: This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(253) : 請參閱 ‘fscanf’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_seq.c(405): warning C4996: ‘fscanf’: This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(253) : 請參閱 ‘fscanf’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_seq.c(436): warning C4996: ‘sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestdio.h(371) : 請參閱 ‘sprintf’ 的宣告
d:sourcecjasper-1.900.1srclibjasperbasejas_seq.c(443): warning C4996: ‘strcat’: This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(110) : 請參閱 ‘strcat’ 的宣告
正在產生程式碼…
d:sourcecjasper-1.900.1srclibjasperjp2jp2_enc.c(436): warning C4715: ‘clrspctojp2’ : 不是所有控制路徑都傳回值
d:sourcecjasper-1.900.1srclibjasperjpcjpc_t1cod.c(160): warning C4715: ‘JPC_NOMINALGAIN’ : 不是所有控制路徑都傳回值
正在編譯…
jas_malloc.c
jas_init.c
jas_image.c
jas_iccdata.c
jas_icc.c
d:sourcecjasper-1.900.1srclibjasperbasejas_icc.c(1604): warning C4244: ‘=’ : 將 ‘UINT64’ 轉換為 ‘jas_iccuint16_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperbasejas_icc.c(1614): warning C4244: ‘=’ : 將 ‘INT64’ 轉換為 ‘jas_iccsint32_t’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperbasejas_icc.c(1623): warning C4244: ‘=’ : 將 ‘UINT64’ 轉換為 ‘jas_iccuint32_t’,由於型別不同,可能導致資料遺失
jas_getopt.c
d:sourcecjasper-1.900.1srclibjasperbasejas_getopt.c(129): warning C4013: ‘jas_eprintf’ 未定義; 假設 extern 傳回整數
jas_debug.c
jas_cm.c
d:sourcecjasper-1.900.1srclibjasperbasejas_cm.c(563): warning C4244: ‘=’ : 將 ‘jas_cmreal_t’ 轉換為 ‘long’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperbasejas_cm.c(923): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘int’,由於型別不同,可能導致資料遺失
d:sourcecjasper-1.900.1srclibjasperbasejas_cm.c(926): warning C4244: ‘=’ : 將 ‘double’ 轉換為 ‘int’,由於型別不同,可能導致資料遺失
bmp_enc.c
bmp_dec.c
d:sourcecjasper-1.900.1srclibjasperbmpbmp_dec.c(110): warning C4013: ‘jas_eprintf’ 未定義; 假設 extern 傳回整數
bmp_cod.c
正在產生程式碼…
d:sourcecjasper-1.900.1srclibjasperbasejas_cm.c(1068): warning C4715: ‘icctoclrspc’ : 不是所有控制路徑都傳回值
d:sourcecjasper-1.900.1srclibjasperbasejas_cm.c(1277): warning C4715: ‘jas_clrspc_numchans’ : 不是所有控制路徑都傳回值
libjasper.vcxproj -> D:sourceCjasper-1.900.1srcmsvc.Win32_Debuglibjasper.lib
—— 已開始建置: 專案: jasper, 組態: Debug Win32 ——
jasper.c
d:sourcecjasper-1.900.1srcappljasper.c(459): warning C4996: ‘strcat’: This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(110) : 請參閱 ‘strcat’ 的宣告
d:sourcecjasper-1.900.1srcappljasper.c(461): warning C4996: ‘strcat’: This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:program filesmicrosoft visual studio 10.0vcincludestring.h(110) : 請參閱 ‘strcat’ 的宣告
jasper.vcxproj -> D:sourceCjasper-1.900.1srcmsvc.Win32_Debugjasper.exe
—— 已開始建置: 專案: imginfo, 組態: Debug Win32 ——
imginfo.c
imginfo.vcxproj -> D:sourceCjasper-1.900.1srcmsvc.Win32_Debugimginfo.exe
—— 已開始建置: 專案: imgcmp, 組態: Debug Win32 ——
imgcmp.c
imgcmp.vcxproj -> D:sourceCjasper-1.900.1srcmsvc.Win32_Debugimgcmp.exe
—— 已開始建置: 專案: jiv, 組態: Debug Win32 ——
  jiv.c
d:sourcecjasper-1.900.1srcappljiv.c(67): fatal error C1083: 無法開啟包含檔案: ‘GL/glut.h’: No such file or directory

========== 建置: 4 成功、1 失敗、0 最新、0 略過 ==========

很多警告,而且最後有一個jiv.c編譯失敗,但是看起來這是應用程式的編譯,至於後面要複製的東西,一點都沒少,所以這個錯誤ㄚ琪就忽略了。

4. 放下列的檔案:

  • -將srclibjasperinclude裡的jasper資料夾放到c:gtk_compilationvs10Win32include
    -srcmsvcWin32_Debug裡的libjasper.lib到c:gtk_compilationvs10Win32lib
    srcmsvcWin32_Debug裡的(這是ㄚ琪的猜測)所有.exe檔放到c:gtk_compilationvs10Win32bin

好繼續這一個編譯,順便看一隻叫Groove Billed Ani的鳥吧,可能大家會覺得是杜鵑,不過這可是美洲的黑杜鵑喔,明年四月去美國希望可以看到。

Groove Billed Ani

7. FreeType

1.ㄚ琪從http://sourceforge.net/projects/freetype/files/freetype2/下載了最新的ft246.zip,我猜這是給Windows用的吧,解壓縮後,ㄚ琪看到有buildswin32vc2010這個資料夾,為了不再有JASPER那樣有麻煩事,ㄚ琪就不照原文的操作了。

  1. 2.這個步驟就不用管了。
  2. 3.放這些檔案到:
    • -在objswin32vc2010裡有建置freetype246_D.lib這個檔案,好像跟原文說的freetype.lib這個static library有點不同,不過我們先猜測是版本跟編譯模式的關係吧,照樣放入c:gtk_compilationvs10Win32lib
      -將$(srcroot)include的所有檔案放入c:gtk_compilationvs10Win32include
8. Expat

1.從http://sourceforge.net/projects/expat/files/expat/下載最新的expat-2.0.1.tar.gz

  1. 2.又碰到跟JASPER一樣的情形囉,只好到Microsoft Visual C++ 2008 Express Edition轉檔,再用Microsoft Visual C++ 2010 Express轉,vs10預設好的組態都不用改,然後就可建置了,建置紀錄如下,雖有警告,可忽略:
  2. —— 已開始建置: 專案: expat_static, 組態: Debug Win32 ——
    xmlparse.c
    xmlrole.c
    xmltok.c
    xmltok_impl.c
    xmltok_ns.c
    正在產生程式碼…
    C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppBuild.targets(1151,5): warning MSB8012: TargetPath(D:sourceCexpat-2.0.1lib…win32binDebugexpat_static.lib) 與 Library 的 OutputFile 屬性值 (D:sourceCexpat-2.0.1win32binDebuglibexpatMT.lib) 不相符。這可能會導致您的專案建置不正確。若要改正這種情況,請確認 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值必須與 %(Lib.OutputFile) 中指定的值相符。
    C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppBuild.targets(1153,5): warning MSB8012: TargetName(expat_static) 與 Library 的 OutputFile 屬性值 (libexpatMT) 不相符。這可能會導致您的專案建置不正確。若要改正這種情況,請確認 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值必須與 %(Lib.OutputFile) 中指定的值相符。
    expat_static.vcxproj -> D:sourceCexpat-2.0.1lib…win32binDebugexpat_static.lib
    —— 已開始建置: 專案: expat, 組態: Debug Win32 ——
    xmlparse.c
    xmlrole.c
    xmltok.c
    xmltok_impl.c
    xmltok_ns.c
    正在產生程式碼…
    C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(D:sourceCexpat-2.0.1lib…win32binDebugexpat.dll) 與 Linker 的 OutputFile 屬性值 (D:sourceCexpat-2.0.1win32binDebuglibexpat.dll) 不相符。這可能會導致您的專案建置不正確。若要改正這種情況,請確認 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值必須與 %(Link.OutputFile) 中指定的值相符。
    C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(expat) 與 Linker 的 OutputFile 屬性值 (libexpat) 不相符。這可能會導致您的專案建置不正確。若要改正這種情況,請確認 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值必須與 %(Link.OutputFile) 中指定的值相符。
    正在建立程式庫 …win32binDebug/libexpat.lib 和物件 …win32binDebug/libexpat.exp
    正在建立程式庫 …win32binDebug/libexpat.lib 和物件 …win32binDebug/libexpat.exp
    expat.vcxproj -> D:sourceCexpat-2.0.1lib…win32binDebugexpat.dll
    —— 已開始建置: 專案: expatw, 組態: Debug Win32 ——
    xmlparse.c
    xmlrole.c
    xmltok.c
    xmltok_impl.c
    xmltok_ns.c
    正在產生程式碼…
    C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(D:sourceCexpat-2.0.1lib…win32binDebugexpatw.dll) 與 Linker 的 OutputFile 屬性值 (D:sourceCexpat-2.0.1win32binDebuglibexpatw.dll) 不相符。這可能會導致您的專案建置不正確。若要改正這種情況,請確認 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值必須與 %(Link.OutputFile) 中指定的值相符。
    C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(expatw) 與 Linker 的 OutputFile 屬性值 (libexpatw) 不相符。這可能會導致您的專案建置不正確。若要改正這種情況,請確認 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值必須與 %(Link.OutputFile) 中指定的值相符。
    正在建立程式庫 …win32binDebug/libexpatw.lib 和物件 …win32binDebug/libexpatw.exp
    正在建立程式庫 …win32binDebug/libexpatw.lib 和物件 …win32binDebug/libexpatw.exp
    expatw.vcxproj -> D:sourceCexpat-2.0.1lib…win32binDebugexpatw.dll
    —— 已開始建置: 專案: expatw_static, 組態: Debug Win32 ——
    xmlparse.c
    xmlrole.c
    xmltok.c
    xmltok_impl.c
    xmltok_ns.c
    正在產生程式碼…
    C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppBuild.targets(1151,5): warning MSB8012: TargetPath(D:sourceCexpat-2.0.1lib…win32binDebugexpatw_static.lib) 與 Library 的 OutputFile 屬性值 (D:sourceCexpat-2.0.1win32binDebuglibexpatwMT.lib) 不相符。這可能會導致您的專案建置不正確。若要改正這種情況,請確認 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值必須與 %(Lib.OutputFile) 中指定的值相符。
    C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppBuild.targets(1153,5): warning MSB8012: TargetName(expatw_static) 與 Library 的 OutputFile 屬性值 (libexpatwMT) 不相符。這可能會導致您的專案建置不正確。若要改正這種情況,請確認 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值必須與 %(Lib.OutputFile) 中指定的值相符。
    expatw_static.vcxproj -> D:sourceCexpat-2.0.1lib…win32binDebugexpatw_static.lib
    —— 已開始建置: 專案: outline, 組態: Debug Win32 ——
    outline.c
    outline.vcxproj -> D:sourceCexpat-2.0.1examples…win32binDebugoutline.exe
    —— 已開始建置: 專案: elements, 組態: Debug Win32 ——
    elements.c
    elements.vcxproj -> D:sourceCexpat-2.0.1examples…win32binDebugelements.exe
    —— 已開始建置: 專案: xmlwf, 組態: Debug Win32 ——
    codepage.c
    win32filemap.c
    xmlfile.c
    d:sourcecexpat-2.0.1xmlwfxmlfile.c(118): warning C4996: ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludestring.h(105) : 請參閱 ‘strcpy’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlfile.c(126): warning C4996: ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludestring.h(105) : 請參閱 ‘strcpy’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlfile.c(160): warning C4996: ‘open’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _open. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludeio.h(312) : 請參閱 ‘open’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlfile.c(171): warning C4996: ‘close’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _close. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludeio.h(302) : 請參閱 ‘close’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlfile.c(176): warning C4996: ‘read’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _read. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludeio.h(313) : 請參閱 ‘read’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlfile.c(180): warning C4996: ‘close’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _close. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludeio.h(302) : 請參閱 ‘close’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlfile.c(186): warning C4996: ‘close’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _close. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludeio.h(302) : 請參閱 ‘close’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlfile.c(191): warning C4996: ‘close’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _close. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludeio.h(302) : 請參閱 ‘close’ 的宣告
    xmlwf.c
    d:sourcecexpat-2.0.1xmlwfxmlwf.c(795): warning C4996: ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludestring.h(105) : 請參閱 ‘strcpy’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlwf.c(796): warning C4996: ‘strcat’: This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludestring.h(110) : 請參閱 ‘strcat’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlwf.c(797): warning C4996: ‘strcat’: This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludestring.h(110) : 請參閱 ‘strcat’ 的宣告
    d:sourcecexpat-2.0.1xmlwfxmlwf.c(798): warning C4996: ‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    c:program filesmicrosoft visual studio 10.0vcincludestdio.h(234) : 請參閱 ‘fopen’ 的宣告
    正在產生程式碼…
    xmlwf.vcxproj -> D:sourceCexpat-2.0.1xmlwf…win32binDebugxmlwf.exe
    ========== 建置: 7 成功、0 失敗、0 最新、0 略過 ==========
  3. 3.放下列檔案到:
    • -將win32binDebug裡的dll跟exe檔放至c:gtk_compilationvs10Win32bin
      -將win32binDebug裡的lib檔複製到c:gtk_compilationvs10Win32lib,另外複製libexpat.lib檔案為expat.lib,以及複製libexpatw.lib檔案為expatw.lib到c:gtk_compilationvs10Win32lib
      -放lib中的expat.h跟expat_external.h到c:gtk_compilationvs10Win32include

      9. FontConfig

    真是讓人挫折,此刻的ㄚ琪真像熱鍋上的螞蟻一樣。

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *