當前位置:首頁 » 編程軟體 » vs2008x64編譯

vs2008x64編譯

發布時間: 2024-06-14 17:13:23

A. 我現在安裝的有VC++6.0和VS2008,操作系統為32位。想問一下怎麼才能開發64位的應用程序

設置64位創建環境變數, 用下面任何一種方式都行:
方式一:
點擊」開始」菜單, 指向 「Microsoft Platform SDK」 > 「Open Build Environment Windows」 > 「Set Windows XP 64 Build Environment」, 然後點擊」Set Windows XP 64 Build Environment (Debug)」, 這時, 一個控制台窗口將顯示, 一行文本顯示像」 the build environment set for a 64-bit」.
方式二:
在命令提示符下,
1. 點擊」開始」菜單, 然後點擊」運行」

2. 鍵入」command.exe」(沒有引號), 然後, 點擊」確定」

3. 變化當前目錄到C:\Program Files\Microsoft SDK(你的SDK安裝目錄), 然後鍵入」SetEnv.bat /XP64」(沒有引號)
現在, 開始啟動Visual C++ 6.0並用我們剛才配置好的創建環境
1. 在同一個命令窗口中(也就是你剛才設置64位環境的命令行窗口), 打開Visual Studio.

2. 鍵入 「Msdev /useenv」(沒有引號). 請注意, 不要打開一個新的命令行窗口, 再去打開Msdev.exe, 現在Visual C++ 6.0 IDE已經顯示, 並且include, library及executable目錄均被設置為64位的創建環境(注:查看這些配置, 點擊Tools > Options > Directories, 在」Show directories for: 「下拉列表中查看相應目錄配置).
另外, 如果Msdev.exe不在當前路徑下(通常是系統環境變數沒有相應指示), 變化目錄到你所安裝Visual Studio的目錄下, 例如: \Microsoft Visual Studio\Common\Msdev98\Bin, 然後, 再鍵入Msdev.exe.
譯注: 在前面的設置64位創建環境變數 , 已經將IDE的executable執行目錄調整到SDK的相應目錄下面, 也就是說, 作為可執行程序: 編譯器和鏈接器是在SDK目錄中, 而不再是默認的\Microsoft Visual Studio\Common\Msdev98\Bin
添加一個64位Debug配置
1. 在Visual C++ IDE中, 打開一個已經在的32位工程(例如: MyApplication)

2. 在」Build」菜單上, 點擊」Configurations」.

3. 在」Configurations」對話框上, 點擊」Add」.

4. 在」Add Project Configuration」對話框上, 設置」Configuration」到Debug64, 然後, 在」Copy Settings from」列表框中點擊」MyApplication – Win32 Debug」

5. 點擊」OK」完成設置, 點擊」Close」關閉.
設置激活配置為64位
1. 在」Build」菜單上, 點擊」Set Active Configuration」.

2. 點擊」MyApplication – Win32 Debug64」, 然後, 點擊」OK」.
修改編譯器和鏈接器的參數配置
由於64位的編譯器和鏈接器的參數配置和32位的有些不一樣, 我們需要修改部分選項, 下面是這些配置步驟:
1. 在」Project」菜單中,點擊」Settings」.

2. 在」Project Settings」對話框中, 點擊」General」標簽. 在」Output directories」, 在」Intermediate files」 和」Output files」輸入框中, 鍵入」Debug64」(沒有引號)

3. 在」C/C++」標簽上, 在」Debug info」下拉列表中, 選擇」Program database(參數選項對應是 /Zi)

4. 在」Link」標簽上, 在」Project options」的輸入框中, 變化」/machine:I386」(沒有引號)到」/machine:IA64」(沒有引號)

譯注: 正確設置應是: /machine:AMD64

5. 在」View」菜單上, 點擊」Workspace」.

6. 然後, 移除幫助文件MyApplication.hpj

7. 如果你的應用程序是基於MFC的, 你必須添加一個MFC路徑以避免鏈接錯誤:LNK1004 on the Mfc42d.lib, 請按下面步驟操作:
a. 在」Tools」菜單上, 點擊」Options」.

b. 在」Directories」標簽上, 在」Show directories」下拉列表中, 選擇」Library Files」, 現在添加你的平台庫所在路徑: 」\Microsoft SDK\lib\IA64\mfc」(沒有引號)

譯注補充: 在」C/C++」標簽上, 在」Preprocessor definitions」輸入框中將WIN32改成WIN64
創建並調試這個工程
現在Build這個工程, 生成64位應用程序, 這個應用程序被部署在一個IA64計算機上.
要在Visual C++ 6.0中運行這個.exe文件, 按下面步驟:
注意: 你不能夠在Visual C++ 6.0 IDE中調試這個.exe文件.
a. 在你的IA64計算機上, 創建一個文件夾: C:\VC6MSVCMON
從X86(32位)計算機上拷貝這些文件到這個新創建的文件夾中:

Msvcmon.exe
Dm.dll
Msdis110.dll
Tln0t.dll

上面這些文件應在你的Visual C++ 6.0安裝目錄下:
\Visual Studio\Common\MSDev98\Bin

b. 在拷貝完這些文件後, 在IA64計算機上運行Msvcmon.exe, 然後, 點擊」Connect」.

c. 在X86(32位)計算機上, 打開Visual C++ 6.0 IDE, 在」Build」菜單上, 點擊」Debugger Remote Connection」.

d. 在」Remote Connection」對話框中, 點擊」Network TCP/IP」, 然後, 點擊」Settings」.

e. 在」Target computer name of address」輸入框中, 鍵入IA64計算機的名稱. 點擊」ok」兩次, 關閉對話框.

f. 在Visual Studio C++ IDE中, 在」Project」菜單上, 點擊」Settings」, 在左側面板, 展開」MyApplication」, 然後, 點擊」Debug」標簽. 你將注意到」Executable for debug session」輸入框包含了MyApplication.exe的路徑, 看起來是C:\<X86Path>\MyApplication.exe.

g. 在」Remote executable path and file name」輸入框中, 鍵入」MyApplication.exe」(沒有雙引號)所在的全路徑, 這個路徑看起來像: \\<X86ComputerName>\C$\<x86Path>\MyApplication.exe(沒有引號).點擊」OK」關閉該窗口.

h. 按下CTRL+F5或在」Build」菜單上點擊」Execute MyApplication.exe」, 開始運行這個.exe文件, 這個.exe文件現在是運行在IA64計算機上.
注意:如果MyApplication是一個MFC應用程序並且這個工程用到了MFC相關的.dll文件, 請確信在IA64計算機上, 那些.dll文件從\Microsoft SDK\NoRedist\Win64文件夾中已被拷貝到\System32文件夾中.
譯注:\Microsoft SDK\NoRedist\Win64存放的是debug和release版本的MFC, ATL相關dll(64位), 實際上你也可以拷貝這些dll文件到你的可執行.exe文件所在同一目錄中.
這些dll文件是:

Mfc42d.dll
Mfco42d.dll
Msvcrtd.dll

譯注補充: 編譯/鏈接中經常遇到的問題:
鏈接出錯, 通常是RTC, cookie錯誤, 參見下面鏈接設置:
http://support.microsoft.com/?scid=kb%3Ben-us%3B894573&x=15&y=14
鏈接中如出現 Error Spawing bscmake.exe
去掉勾選編譯參數(Project settings > c/c++): Generate Browse Info
如果仍不成功, 請仔細檢查在菜單項」Tools」 > 「Options」 , 定位在」Directories」標簽, 選擇」Executable Files」, 在下面的目錄列表中, 將<SDK安裝目錄>\bin路徑放在第一項.(這個目錄中的64位編譯器和鏈接器程序將重載舊的32位設置).
如果你是動態庫和主應用程序鏈接, 必須保持用的是相同運行時庫, 例如: 全部都是Multi-Threads DLL(點擊」Project」 > 「Settings」, 選擇」C/C++」標簽, 在」Category」下拉列表中選擇」Code Generation」, 在下面」Use runtime library」下拉列表中選擇).
用Visual C++ .NET IDE創建一個64位應用程序
警告: 在已安裝Visual Studio .NET的計算機上, 請不要同時安裝64位版本的WinDbg調試器工具, 請讀平台SDK的Readme.doc(位置在: C:\Program Files\Microsoft SDK\Bin\Win64\Readme.doc).
設置64位創建環境變數, 用下面任何一種方式都行:
參照前文相同部分.
開始啟動Visual C++ .NET, 並用剛才我們創建好的64位環境
1. 在64位SDK環境設置的命令行窗口中,打開Visual Studio .NET.

2. 鍵入」devenv /useenv」(沒有引號), 然後, 點擊」OK」. 現在include, library, executable目錄被設置成為64位SDK所在目錄.

注意: 如果Devent.exe不在當前路徑(通常是在系統環境變數Path中未指定Visual Studio .NET安裝目錄), 請改變文件夾路徑到<Visual Studio .NET安裝目錄>\Microsoft Visual Studio .NET\Common7\IDE, 然後再運行上述命令.
警告:在你運行這個命令後, Visual Studio .NET IDE就被設置成為64位的開發環境, 如果你想清除這個環境, 在打開一個新的Visual Studio .NET IDE之前, 刪除在C:\Documents and Settings\<Username>\Local Settings\Application Data\Microsoft\VisualStudio\7.0 下的Vccomponents.dat文件.
添加一個64位調試配置
1. 打開一個已存在的32位工程(例如, MyApplication).

2. 在」Build」菜單上, 點擊」Configuration Manager」.

3. 在」Active Solution Configurations」列表中, 點擊」New」.

4. 在」New Solution Configurations」對話框中, 在」Solution Configuration Name」下面選擇」Debug64」(不包含引號), 並且在」Copy Settings From」下面選擇」Debug」.

5. 點擊」OK」.

6. 在」Configuration Manager」對話框中, 在」Active Solution Configuration」列表中, 點擊選擇」Debug64」, 然後點擊」OK」.

修改編譯器和鏈接器設置
由於64位的編譯器和鏈接器的參數配置和32位的有些不一樣, 我們需要修改部分選項, 下面是這些配置步驟:

1. 在」Solution」(中文:解決方案)瀏覽窗口中, 右鍵」Project」, 然後, 點擊」Properties」.

2. 在」C/C++」節點, 選擇」General」. 設置」Debug Information Format」到」Program Database」(對應的編譯選項是/Zi).

3. 在」C/C++」節點中, 選擇」Code generation」. 設置」Buffer Security Check」到」No」(對應的編譯選項是/GS).

4. 在」Linker」節點, 選擇」Command Line」.在」Additional Options」下面, 添加」/MACHINE:IA64」(沒有引號).

5. 如果你的應用程序是基於MFC的,你必須添加MFC路徑以避免收到鏈接錯誤:LNK1104 on the Mfc42d.lib file.
添加MFC路徑, 按下面步驟:
a. 在」Tools」菜單上, 點擊」Options」.

b. 在」Projects」下面, 選擇」VC++ Directories」. 在」Show directories」列表中, 選擇」Library Files」.如果庫路徑沒有列出, 添加這個庫路徑"\Microsoft SDK\lib\IA64\mfc"(沒有引號).
注意:如果MyApplication是一個MFC應用程序並且這個工程用到了MFC相關的.dll文件, 請確信在IA64計算機上, 那些.dll文件從\Microsoft SDK\NoRedist\Win64文件夾中已被拷貝到\System32文件夾中.
這些dll文件是:
Mfc42d.dll
Mfco42d.dll
Msvcrtd.dll
完成這些後, 就可以build 64位可執行程序了.
調試工程參照Visual C++ 6.0 IDE部分.
更多參考在:
64-Bit Programming with Visual C++

64位程序移植問題設置64位創建環境變數, 用下面任何一種方式都行:
方式一:
點擊」開始」菜單, 指向 「Microsoft Platform SDK」 > 「Open Build Environment Windows」 > 「Set Windows XP 64 Build Environment」, 然後點擊」Set Windows XP 64 Build Environment (Debug)」, 這時, 一個控制台窗口將顯示, 一行文本顯示像」 the build environment set for a 64-bit」.
方式二:
在命令提示符下,
1. 點擊」開始」菜單, 然後點擊」運行」

2. 鍵入」command.exe」(沒有引號), 然後, 點擊」確定」

3. 變化當前目錄到C:\Program Files\Microsoft SDK(你的SDK安裝目錄), 然後鍵入」SetEnv.bat /XP64」(沒有引號)
現在, 開始啟動Visual C++ 6.0並用我們剛才配置好的創建環境
1. 在同一個命令窗口中(也就是你剛才設置64位環境的命令行窗口), 打開Visual Studio.

2. 鍵入 「Msdev /useenv」(沒有引號). 請注意, 不要打開一個新的命令行窗口, 再去打開Msdev.exe, 現在Visual C++ 6.0 IDE已經顯示, 並且include, library及executable目錄均被設置為64位的創建環境(注:查看這些配置, 點擊Tools > Options > Directories, 在」Show directories for: 「下拉列表中查看相應目錄配置).
另外, 如果Msdev.exe不在當前路徑下(通常是系統環境變數沒有相應指示), 變化目錄到你所安裝Visual Studio的目錄下, 例如: \Microsoft Visual Studio\Common\Msdev98\Bin, 然後, 再鍵入Msdev.exe.
譯注: 在前面的設置64位創建環境變數 , 已經將IDE的executable執行目錄調整到SDK的相應目錄下面, 也就是說, 作為可執行程序: 編譯器和鏈接器是在SDK目錄中, 而不再是默認的\Microsoft Visual Studio\Common\Msdev98\Bin
添加一個64位Debug配置
1. 在Visual C++ IDE中, 打開一個已經在的32位工程(例如: MyApplication)

2. 在」Build」菜單上, 點擊」Configurations」.

3. 在」Configurations」對話框上, 點擊」Add」.

4. 在」Add Project Configuration」對話框上, 設置」Configuration」到Debug64, 然後, 在」Copy Settings from」列表框中點擊」MyApplication – Win32 Debug」

5. 點擊」OK」完成設置, 點擊」Close」關閉.
設置激活配置為64位
1. 在」Build」菜單上, 點擊」Set Active Configuration」.

2. 點擊」MyApplication – Win32 Debug64」, 然後, 點擊」OK」.
修改編譯器和鏈接器的參數配置
由於64位的編譯器和鏈接器的參數配置和32位的有些不一樣, 我們需要修改部分選項, 下面是這些配置步驟:
1. 在」Project」菜單中,點擊」Settings」.

2. 在」Project Settings」對話框中, 點擊」General」標簽. 在」Output directories」, 在」Intermediate files」 和」Output files」輸入框中, 鍵入」Debug64」(沒有引號)

3. 在」C/C++」標簽上, 在」Debug info」下拉列表中, 選擇」Program database(參數選項對應是 /Zi)

4. 在」Link」標簽上, 在」Project options」的輸入框中, 變化」/machine:I386」(沒有引號)到」/machine:IA64」(沒有引號)

譯注: 正確設置應是: /machine:AMD64

5. 在」View」菜單上, 點擊」Workspace」.

6. 然後, 移除幫助文件MyApplication.hpj

7. 如果你的應用程序是基於MFC的, 你必須添加一個MFC路徑以避免鏈接錯誤:LNK1004 on the Mfc42d.lib, 請按下面步驟操作:
a. 在」Tools」菜單上, 點擊」Options」.

b. 在」Directories」標簽上, 在」Show directories」下拉列表中, 選擇」Library Files」, 現在添加你的平台庫所在路徑: 」\Microsoft SDK\lib\IA64\mfc」(沒有引號)

譯注補充: 在」C/C++」標簽上, 在」Preprocessor definitions」輸入框中將WIN32改成WIN64
創建並調試這個工程
現在Build這個工程, 生成64位應用程序, 這個應用程序被部署在一個IA64計算機上.
要在Visual C++ 6.0中運行這個.exe文件, 按下面步驟:
注意: 你不能夠在Visual C++ 6.0 IDE中調試這個.exe文件.
a. 在你的IA64計算機上, 創建一個文件夾: C:\VC6MSVCMON
從X86(32位)計算機上拷貝這些文件到這個新創建的文件夾中:

Msvcmon.exe
Dm.dll
Msdis110.dll
Tln0t.dll

上面這些文件應在你的Visual C++ 6.0安裝目錄下:
\Visual Studio\Common\MSDev98\Bin

b. 在拷貝完這些文件後, 在IA64計算機上運行Msvcmon.exe, 然後, 點擊」Connect」.

c. 在X86(32位)計算機上, 打開Visual C++ 6.0 IDE, 在」Build」菜單上, 點擊」Debugger Remote Connection」.

d. 在」Remote Connection」對話框中, 點擊」Network TCP/IP」, 然後, 點擊」Settings」.

e. 在」Target computer name of address」輸入框中, 鍵入IA64計算機的名稱. 點擊」ok」兩次, 關閉對話框.

f. 在Visual Studio C++ IDE中, 在」Project」菜單上, 點擊」Settings」, 在左側面板, 展開」MyApplication」, 然後, 點擊」Debug」標簽. 你將注意到」Executable for debug session」輸入框包含了MyApplication.exe的路徑, 看起來是C:\<X86Path>\MyApplication.exe.

g. 在」Remote executable path and file name」輸入框中, 鍵入」MyApplication.exe」(沒有雙引號)所在的全路徑, 這個路徑看起來像: \\<X86ComputerName>\C$\<x86Path>\MyApplication.exe(沒有引號).點擊」OK」關閉該窗口.

h. 按下CTRL+F5或在」Build」菜單上點擊」Execute MyApplication.exe」, 開始運行這個.exe文件, 這個.exe文件現在是運行在IA64計算機上.
注意:如果MyApplication是一個MFC應用程序並且這個工程用到了MFC相關的.dll文件, 請確信在IA64計算機上, 那些.dll文件從\Microsoft SDK\NoRedist\Win64文件夾中已被拷貝到\System32文件夾中.
譯注:\Microsoft SDK\NoRedist\Win64存放的是debug和release版本的MFC, ATL相關dll(64位), 實際上你也可以拷貝這些dll文件到你的可執行.exe文件所在同一目錄中.
這些dll文件是:

Mfc42d.dll
Mfco42d.dll
Msvcrtd.dll

譯注補充: 編譯/鏈接中經常遇到的問題:
鏈接出錯, 通常是RTC, cookie錯誤, 參見下面鏈接設置:
http://support.microsoft.com/?scid=kb%3Ben-us%3B894573&x=15&y=14
鏈接中如出現 Error Spawing bscmake.exe
去掉勾選編譯參數(Project settings > c/c++): Generate Browse Info
如果仍不成功, 請仔細檢查在菜單項」Tools」 > 「Options」 , 定位在」Directories」標簽, 選擇」Executable Files」, 在下面的目錄列表中, 將<SDK安裝目錄>\bin路徑放在第一項.(這個目錄中的64位編譯器和鏈接器程序將重載舊的32位設置).
如果你是動態庫和主應用程序鏈接, 必須保持用的是相同運行時庫, 例如: 全部都是Multi-Threads DLL(點擊」Project」 > 「Settings」, 選擇」C/C++」標簽, 在」Category」下拉列表中選擇」Code Generation」, 在下面」Use runtime library」下拉列表中選擇).
用Visual C++ .NET IDE創建一個64位應用程序
警告: 在已安裝Visual Studio .NET的計算機上, 請不要同時安裝64位版本的WinDbg調試器工具, 請讀平台SDK的Readme.doc(位置在: C:\Program Files\Microsoft SDK\Bin\Win64\Readme.doc).
設置64位創建環境變數, 用下面任何一種方式都行:
參照前文相同部分.
開始啟動Visual C++ .NET, 並用剛才我們創建好的64位環境
1. 在64位SDK環境設置的命令行窗口中,打開Visual Studio .NET.

2. 鍵入」devenv /useenv」(沒有引號), 然後, 點擊」OK」. 現在include, library, executable目錄被設置成為64位SDK所在目錄.

注意: 如果Devent.exe不在當前路徑(通常是在系統環境變數Path中未指定Visual Studio .NET安裝目錄), 請改變文件夾路徑到<Visual Studio .NET安裝目錄>\Microsoft Visual Studio .NET\Common7\IDE, 然後再運行上述命令.
警告:在你運行這個命令後, Visual Studio .NET IDE就被設置成為64位的開發環境, 如果你想清除這個環境, 在打開一個新的Visual Studio .NET IDE之前, 刪除在C:\Documents and Settings\<Username>\Local Settings\Application Data\Microsoft\VisualStudio\7.0 下的Vccomponents.dat文件.
添加一個64位調試配置
1. 打開一個已存在的32位工程(例如, MyApplication).

2. 在」Build」菜單上, 點擊」Configuration Manager」.

3. 在」Active Solution Configurations」列表中, 點擊」New」.

4. 在」New Solution Configurations」對話框中, 在」Solution Configuration Name」下面選擇」Debug64」(不包含引號), 並且在」Copy Settings From」下面選擇」Debug」.

5. 點擊」OK」.

6. 在」Configuration Manager」對話框中, 在」Active Solution Configuration」列表中, 點擊選擇」Debug64」, 然後點擊」OK」.

修改編譯器和鏈接器設置
由於64位的編譯器和鏈接器的參數配置和32位的有些不一樣, 我們需要修改部分選項, 下面是這些配置步驟:

1. 在」Solution」(中文:解決方案)瀏覽窗口中, 右鍵」Project」, 然後, 點擊」Properties」.

2. 在」C/C++」節點, 選擇」General」. 設置」Debug Information Format」到」Program Database」(對應的編譯選項是/Zi).

3. 在」C/C++」節點中, 選擇」Code generation」. 設置」Buffer Security Check」到」No」(對應的編譯選項是/GS).

4. 在」Linker」節點, 選擇」Command Line」.在」Additional Options」下面, 添加」/MACHINE:IA64」(沒有引號).

5. 如果你的應用程序是基於MFC的,你必須添加MFC路徑以避免收到鏈接錯誤:LNK1104 on the Mfc42d.lib file.
添加MFC路徑, 按下面步驟:
a. 在」Tools」菜單上, 點擊」Options」.

b. 在」Projects」下面, 選擇」VC++ Directories」. 在」Show directories」列表中, 選擇」Library Files」.如果庫路徑沒有列出, 添加這個庫路徑"\Microsoft SDK\lib\IA64\mfc"(沒有引號).
注意:如果MyApplication是一個MFC應用程序並且這個工程用到了MFC相關的.dll文件, 請確信在IA64計算機上, 那些.dll文件從\Microsoft SDK\NoRedist\Win64文件夾中已被拷貝到\System32文件夾中.
這些dll文件是:
Mfc42d.dll
Mfco42d.dll
Msvcrtd.dll
完成這些後, 就可以build 64位可執行程序了.
調試工程參照Visual C++ 6.0 IDE部分.
更多參考在:
64-Bit Programming with Visual C++

64位程序移植問題

B. VS2008的32位的程序如何移植到64位的系統,具體操作上的問題

打開任務管理器,看下程序的進程,如果進程名後面多了「*」號,則說明該進程是32位的,正運行在WOW64兼容模式下。反之,如果哪冊沒有星號,則是純64位程序,可以充分發揮64位的優勢。

你那程序是用C++本機代碼寫的?那就好辦了,用Visual Studio 2008打開源程序缺緩鬧,針對x64平台改變一下編譯配置選項,重新編伏罩譯一遍就行了。

如果是基於.NET CLR的託管代碼,就不存在這個問題了。
.NET設計的初衷就是消除平台差異。

熱點內容
怎樣找到主機的遠程伺服器的ip 發布:2024-07-25 17:02:27 瀏覽:711
bazel編譯tensorfolw 發布:2024-07-25 16:31:35 瀏覽:19
java圖片路徑 發布:2024-07-25 15:28:52 瀏覽:439
編譯的作用是 發布:2024-07-25 15:28:51 瀏覽:158
c語言課程總結 發布:2024-07-25 15:06:39 瀏覽:897
安卓廣告怎麼賺錢 發布:2024-07-25 15:02:24 瀏覽:895
怎麼看電腦基本配置 發布:2024-07-25 14:57:54 瀏覽:954
nettyandroid 發布:2024-07-25 14:57:52 瀏覽:505
php圖片二進制字元串 發布:2024-07-25 14:55:58 瀏覽:486
安卓手機怎麼找到刪掉的圖片 發布:2024-07-25 14:27:44 瀏覽:477