2013-04-01 63 views
2

我已經下載了WSF-CPP 2.1.0源,並(使用2008/9.0 VS)的vcvars設置爲x86_amd64但我遇到了問題:如何編譯WSO2 Web服務框架 - 用於64位Windows的C++?

  1. 我不得不禁用/ WX編譯選項在wsf_c/axis2c/build/win32/makefile中可以獲得任何內容,因爲Axis2/C代碼充斥着警告。
  2. 現在我運行到多個地方的Axis2/C源文件都試圖包含不存在的文件,如httpd.h中,http_core.h等問題(具體罪犯在wsf_c/AXIS2C/SRC /核心/運輸/ HTTP /服務器/ Apache2的)。

編號1可能只是一個壞主意,無論誰寫了makefile文件,因此無法忽略。但是Number 2似乎表明比一些丟失的頭文件更大的問題,主要是因爲我可以毫無問題地編譯從the Apache web site下載的Axis2/c庫,但代碼是相同的(包括#includes不存在的頭文件)。有誰知道什麼可能會導致這種差異?

這裏,具體地說,就是我正在嘗試設置64位環境變量了。我所做的只是替換該行的build.bat和wsf_c /運行build.bat:

@call vcvars32.bat /nologo 

@call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64 

我做這錯了嗎?我弄亂了別的東西嗎?

此外,這是以往任何時候都問在計算器上我的第一個問題。關於這一點,我會很感激格式,內容,語調,適當性等方面的批評。

回答

1

我的第一個建議是任何試圖使用不再受支持的,過時的WSO2 WSF/CPP/C或Axis2/C將盡可能使用不同的庫。如果您拒絕接受此建議,請繼續閱讀。

終於通過反覆試驗來正確構建它。這裏是什麼了:

  • 正如我的問題說,我不得不禁用wsf_c/AXIS2C的/ WX編譯器選項/建設/的Win32/Makefile中得到阻止修建從失敗就由於所有的警告Axis2/C代碼。
  • 而且在我的問題說,我不得不改變在運行build.bat(無論是運行build.bat或wsf_c /運行build.bat的作品,因爲他們在同一個控制檯上運行的頂線,而你只需要設置每個控制檯會話一次環境變量)。我改了行從

    @call vcvars32.bat /nologo 
    

    @call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64 
    

    這將會使編譯器來構建在64位配置應有盡有。

  • 在wsf_c /編譯。蝙蝠我不得不從

    nmake dist AUTOCONF=..\..\..\configure.in 
    

    更改(或附近)線11 Axis2的/ C build命令

    nmake install AUTOCONF=..\..\..\configure.in 
    

    這奇蹟般地固定丟失報頭的錯誤。如果我有任何想法,我會解釋它。

  • 然後,我有這樣的命令後直接加入這行:

    move ..\deploy ..\axis2c-bin-1.6.0-win32 
    

    這是必要的修復構建腳本的其餘部分,因爲它們都引用build目錄爲axis2c-bin-1.6.0-win32,儘管Axis2的/ C實際上將所有內容放在一個名爲「deploy」的文件夾中。如果你對細節很熱心,你可以改變對該文件夾的每一個引用,最後得到「win64」,但我只是想盡一切努力來實現它。

但請注意,這些都是上述所有步驟,超出了WSO2文檔中的初始安裝/構建說明。 WSO2指令中指出的所有步驟仍然是必要的(顯然,除了32位專有的除外)。

不幸的是,這並沒有解決我真正的問題,它試圖從Axis2/C加載Rampart DLLs。我正在追求WSO2的實施,希望他們以更好的方式構建事物,但唉,沒有運氣。我會在單獨發佈我的Rampart問題,同樣不太可能回答問題。我還沒有找到網絡上任何地方的解決方案。