C#中是否存在#define,它使我能夠在編譯時知道我是否正在編譯x86(Win32)或x64(Win64)?編譯時的目標平臺/處理器
7
A
回答
0
不是我所知道的。您將不得不在不同的項目配置中聲明自己的聲明。
1
據我所知,Visual Studio只定義了DEBUG和TRACE常量。您可以使用NANT來構建項目,而不是在項目配置中手動聲明這種常量。它可以在編譯時確定構建平臺並相應地定義自定義指令。
6
默認情況下,沒有辦法做到這一點。原因是C#代碼並不是針對在CLR上運行的特定平臺而設計的。
雖然可以手動滾動。您可以使用Visual Studio中的項目配置設置來定義自己的常量。或者,如果您希望它更簡化一點,您可以自己編輯.csproj,並手動滾動更多具有各種定義的配置。
例如,您可以使您的項目文件如下所示。我刪除了一些信息來清除x86/amd64信息。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<!-- ... -->
<DefineConstants>TRACE;DEBUG;X86</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|amd64' ">
<!-- ... -->
<DefineConstants>TRACE;DEBUG;AMD64</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
將此項添加到一個.csproj文件中,我在項目中給出了2個新的平臺配置。
相關問題
- 1. 默認預處理器定義和跨平臺編譯
- 2. 如何處理編譯器警告「IncludeTrailingBackslash特定於平臺」?
- 3. x86_64平臺上的LLVM編譯器-rt i386目標
- 4. Java編譯器多平臺
- 5. 編譯器 - 平臺差異
- 6. 基於C預處理器宏,可在編譯時檢測平臺/編譯器的庫有哪些?
- 7. C++/Qt項目跨平臺編譯
- 8. OpenSPARC T1平臺的交叉編譯器?
- 9. 在不同平臺上編譯的編譯器指令
- 10. 處理的依賴,使用目標平臺
- 11. 編譯器如何跨平臺(硬件)?
- 12. 多平臺C++交叉編譯器
- 13. G ++編譯器:Segfault處理
- 14. 在目標平臺上自己編譯Boost有意義嗎?
- 15. 在跨平臺cmake項目中設置編譯器標誌的現代方法
- 16. Asterisk跨平臺編譯
- 17. 內核編譯 - 跨平臺
- 18. 編譯爲其他平臺
- 19. QT Creator - 跨平臺編譯
- 20. C兩個平臺編譯
- 21. Arm處理器的Ada編譯器
- 22. 平臺構建器和編譯選項和標誌
- 23. Monodevelop目標平臺
- 24. 使用VC14平臺工具集編譯OpenCV 3.0時編譯器崩潰
- 25. 項目構建屬性平臺與配置管理器平臺
- 26. C預處理器與C編譯器
- 27. 編譯數據庫項目時如何處理臨時表
- 28. 處罰的MSVS編譯器標誌/ bigobj
- 29. JNI編譯在不同的平臺
- 30. ARM平臺的x11 zbar編譯問題