指定編譯器
A. cmake 在Windows 命令行怎麼指定編譯器
CMake是一個比make更高級的編譯配置工具,它可以根據不同平台、不同的編譯器,生成相應的Makefile或者vcproj項目。
通過編寫CMakeLists.txt,可以控制生成的Makefile,從而控制編譯過程。CMake自動生成的Makefile不僅可以通過make命令構建項目生成目標文件,還支持安裝(make install)、測試安裝的程序是否能正確執行(make test,或者ctest)、生成當前平台的安裝包(make package)、生成源碼包(make package_source)、產生Dashboard顯示數據並上傳等高級功能,只要在CMakeLists.txt中簡單配置,就可以完成很多復雜的功能,包括寫測試用例。
如果有嵌套目錄,子目錄下可以有自己的CMakeLists.txt。
總之,CMake是一個非常強大的編譯自動配置工具,支持各種平台,KDE也是用它編譯的,感興趣的可以試用一下。
准備活動:
(1)安裝cmake。
下載地址:http://www.cmake.org/cmake/resources/software.html
根據自己的需要下載相應的包即可,Windows下可以下載zip壓縮的綠色版本,還可以下載源代碼。
Windows下CMake的使用
(2)運行cmake的方法。(GUI、命令行)
http://www.cmake.org/cmake/help/runningcmake.html
CMake使用步驟:
運行GUI的cmake界面:
cmake-2.8.1-win32-x86\bin\cmake-gui.exe
Windows下CMake的使用
執行Configure:
運行之後,生成了如下文件:
Windows下CMake的使用
生成Makefile:
執行Generate之後生成如下文件:
Windows下CMake的使用
運行make進行編譯:
Windows下CMake的使用
編譯完成後,在build目錄生成Tutorial.exe,運行Tutorial.exe 25就可以看到運行結果:
Windows下CMake的使用
運行make install安裝程序:
Windows下CMake的使用
運行make test進行測試:
Windows下CMake的使用
通過cmake tutorial學習CMake配置方法
http://www.cmake.org/cmake/help/cmake_tutorial.html
可以在源代碼的Tests/Turorial目錄中找到這個手冊對應的代碼。
Windows下CMake的使用
1、Step1。
(如果不知道如何使用cmake,以及如何使用編譯產生的Turorial.exe,可先看下前面「CMake使用步驟」的說明,它以Step4為例詳細介紹了使用過程,Step1的配置可能不夠完全,比如無法運行make install,無法運行make test,但可以參考。)
簡單的程序編譯。
(1)運行GUI的cmake,指定要編譯的源代碼路徑和二進制文件路徑(會自動創建)。
Windows下CMake的使用
(2)點擊Configure,配置成功後,再點擊Generate。
配置需要選擇合適的編譯器,雖然我安裝了VC2008,但沒有配置成功;選擇Unix Makefiles,配置成功,它自動找到了DevC++下的gcc.exe等編譯器。
Windows下CMake的使用
(3)在build3目錄執行make,就能夠編譯生成Turorial.exe了。
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>make
Linking CXX executable Tutorial.exe
[100%] Built target Tutorial
可以運行一下Turorial.exe:
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe
Tutorial.exe Version 1.0
Usage: Tutorial.exe number
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe 4
The square root of 4 is 2
2、Step2
把子目錄編譯為庫,並且鏈接到最終的可執行文件。
include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions")
add_subdirectory (MathFunctions) # 使得子目錄MathFunctions也能被編譯
# add the executable
add_executable (Tutorial tutorial.cxx)
target_link_libraries (Tutorial MathFunctions)
產生makefile:
在GUI上點擊Configure,之後Generate還是灰色,再次點擊Configure,Generate就可以點擊了。
編譯:
B. 免費版c語言編譯器下載
DEV-C++
http://jlbc.skycn.com/down/WY_DEVCPP_5B0905.zip
最基礎的,很小,很實用,2008年信息學奧賽就是用這個來考的
C. 怎麼指定某段代碼不被編譯器優化掉
在C語言中, 某些語句,如:
int a;
a = 0;
a = 1;
a =2; 這個可能編譯器會把前面兩句給優惠掉, 這個如果 前面兩句也是必須要執行的, 可以把 int a 改成 volatile int a。
在編譯的時候, 編譯器可能會預測到某個變數的值, 就把中間的沒有必要的語句給優化掉,volatile 關鍵字就是告訴編譯器,不要做這樣的預測性優化, 按照文本代碼來翻譯。
D. VC6.0對源程序是怎麼選擇編譯器的
為什麼在新建時它只提供了c++ source Files而沒有c source Files的選項呢?
因為c++ source Files 裡面可以運行c source Files 。
VC裡面兼容 C語言的
E. 如何在makefile中指定編譯器
可以使用定義變數來操作
比如定義變數CC
CC=gcc ->x86桌面版的編譯器
CC= arm-linux-gcc ->arm版編譯器
然後在makefile的編譯命令中使用$(CC)就代表了你指定的編譯器
F. 如何在makefile中指定編譯器
在具體命令中,指定編譯器即可,如:
all:
<tab>gcc ...
或者
all:
<tab>g++ ...
G. 編譯器怎麼升級版本
linux下在使用cmake生成Makefile的時候,如果不指定編譯器,則默認是使用系統原生的編譯器, 當操作系統中安裝了新的版本的編譯器,多個版本編譯器共存的時候,如果想使用新版本的編譯器,在cmake生成Makefile的時候就需要指定編譯器。
H. 怎樣指定某個版本的gcc來編譯程序
對於autotools來生成Makefile的程序包,不建議修改Makefile來指定GCC/G++的版本。
最佳方案:
./configure CC=你想使的C編譯器的絕對路徑
./configure CXX=你想使的C++編譯器的絕對路徑
比如:./configure CXX=/usr/local/bin/g++
這樣就可以很方便地讓系統內多個版本的編譯器共存了。
I. cmake 在Windows 命令行怎麼指定編譯器
CMake是一個比make更高級的編譯配置工具,它可以根據不同平台、不同的編譯器,生成相應的Makefile或者vcproj項目。 通過編寫CMakeLists.txt,可以控制生成的Makefile,從而控制編譯過程。
J. 如何指定vc++6.0的編譯器版本
為什麼要指定版本呢??提示i重復定義了,就將第二個for中的int i=0 修改為 i=0就可以了。
修改編譯器的版本?是修改使用不同的編譯器吧。