1. 程式人生 > >在Ubuntu下搭建C/C++程式設計環境

在Ubuntu下搭建C/C++程式設計環境

要安裝程式設計環境,在Terminal中執行sudo apt-get install build-essential

桌面系統的快捷鍵

如果不用桌面系統,可以關閉。
開啟Terminal的快捷鍵是Ctrl+Alt+T,使用快捷鍵Ctrl+Super+Up最大化,Alt+F4關閉。
使用快捷鍵Alt+Tab切換視窗。
長按Super鍵(預設為Windows鍵),可以看到關於桌面的所有快捷鍵。

Terminal的一些基本命令

常用命令
另一個更全一點的
一般最常用的是cd, ls, mkdir, rmdir, cp, rm, mv, clear, pwd, shutdown.
一般使用時只需記住常用命令,不清楚的時候用man查詢。如需檢視更多命令可以閱讀《The Linux Command Line》(《Linux命令列大全》)。

編輯

不去管vim與Emacs的世紀之爭,vim真的是很強大的編輯器,擺脫對圖形介面的依賴,效率會有很大提高。vim有無窮盡的外掛,善加選擇利用,有很多針對程式設計的快捷功能是vs也提供不了的。
vim的學習曲線雖然有些陡峭,但還是很值得的。
網上有很多學習Vim的資源,推薦幾本書:《Vim使用者手冊中文版7.3》《A Byte of Vim》《Practical Vim》,還有這個視訊教程(需要翻牆)。
使用vim,一般只需動用肌肉“記住”一些常用操作(如下表),其餘功能用的時候查詢即可。

vim入門

vim入門主要是熟練使用基本命令。最直接的學習資源是在Terminal裡輸入vimtutor

,會有一個差不多30分鐘的入門教程。
或者學習上文提到的書籍和視訊,對常見命令均有講解。
推薦直接從官方文件或是書籍入手,比在網上搜來搜去只鱗片爪有效率的多。四處搜尋別人的學習經驗,出發點是少走彎路,結果反而欲速則不達,還不如沉下心好好看完一本書。
有幾張不同角度的cheat sheet,方便查閱。作者見文末參考連結。
vi/vim graphical cheat sheet
中文版
vim cheat sheet
程式設計師使用
在vim中,獲得幫助的命令是:help
如果不知道自己想查什麼,可以執行:help user-manual檢視整個使用者手冊的目錄。
如果大概知道想使用的功能而不知道具體命令,可以使用:helpgrep在整個文件中搜索相關內容。比如想了解如何檢視詞首,可以執行:helpgrep beginning of a word
。可以使用:cnext:cprev在搜尋結果間跳轉。
更多關於幫助的幫助,參看《A Byte of Vim》中Vim en:Help這一節。

vim自定義配置

基本操作熟練之後,多半都會開始安外掛折騰自定義配置。
自定義配置與外掛包括vimrc、global plugin、filetype plugin、syntax highlighting plugin、compiler plugin。
一般將簡單配置記錄在vimrc檔案裡,高階功能使用外掛來實現。

在Linux系統中,vimrc檔案地址是$HOME/.vimrc。vim安裝時自帶的外掛在$VIMRUNTIME/plugin/目錄下。自定義外掛放在$HOME/.vim/plugin/的相應子目錄下,且需在vimrc檔案裡設定自動載入此外掛。
詳細的配置與外掛使用及編寫請參看《A Byte of Vim》中Vim en:Plugins這一節。

偷了個懶,在github上發現一個很棒的配置方案spf13-vim,就直接安上了。
spf13-vim是執行在vim層之上,為方便程式設計,對vimrc和plugin都做了很多特殊優化配置的一個工具。
spf13-vim。安裝很容易,根據readme上的指示進行即可。
spf13-vim例圖
安裝成功後,可以開啟~/.vimrc看到spf13-vim的預置配置。建立~/.vimrc.local~/.gvimrc.local進行自定義配置。
spf13-vim已經預置了很多外掛,關於這些外掛的啟動和使用可以看spf13-vim的介紹和這些外掛自己的github頁面。此處唯一提醒的一點是<leader>鍵在spf13-vim這裡是逗號,
我目前也在摸索中,有心得會隨時更新。這是我的操作速查表

在Quora上看到有些人並不推薦使用spf13等工具,認為會引誘你學習這個工具的配置方式,而不是真正學習vim的配置檔案,使用自定義的針對自己需求的配置檔案才最符合vim精神。不過對於初學者來說,我覺得spf13-vim還是很有價值的,畢竟時間這麼寶貴,折騰是很累人的。

編譯執行

gcc

GCC(GNU Compiler Collection)是一組編譯工具的總稱,支援多平臺、多語言原始檔到可執行檔案的編譯與生成。其中也包括gcc(C編譯器)和g++(C++編譯器)。
推薦書籍《An Introduction to GCC》。
在GCC內部尋找幫助,使用gcc --help,如果想看gcc選項的完整列表使用gcc -v --help 2>&1 | more
最簡單的應用示例:一個hello.cpp檔案。一下語句就是編譯與執行。

1
2
g++ hello.cpp hello
./hello

gcc常用命令

基本語法格式如下。
對於C:gcc [options] [filenames]
對於C++:g++ [options] [filenames]
上述命令列按編譯選項(options)指定的操作對給定的檔案(filenames)進行編譯處理。

選項主要列表如下。

選項 選項描述
-c 只對檔案進行編譯和彙編,但不進行連線,生成目標檔案”.o”
-S 只對檔案進行編譯,但不彙編和連線
-E 只對檔案進行預處理,但不編譯彙編和連線
-g 在可執行程式中包含標準除錯資訊
-o file1 [file2] 將檔案file1編譯成可執行檔案file2
-v 打印出編譯器內部編譯各過程的命令列資訊和編譯器的版本
-I dir 在標頭檔案的搜尋路徑列表中新增dir目錄
-L dir 在庫檔案的搜尋路徑列表中新增dir目錄
-static 強制連結靜態庫
-lNAME 連線名為libNAME的庫檔案
-Wall -W 開啟GCC最常用的警告,GCC的warning一般格式為file:line-number:message
-pedantic 要求嚴格符合ANSI標準
-Wconversion 開啟隱式型別轉換警告
-Wshadow 開啟同名變數函式警告
-Wcast-qual 開啟對特性移除的cast的警告,如const
-O(-O1) 對編譯出的程式碼進行優化
-O2 進行比-O高一級的優化
-O3 產生更高級別的優化
-Os 產生最小的可執行檔案
-pg 開啟效能測試,記錄每個函式的呼叫次數與時長
-ftest-coverage 記錄每一行被執行的次數
-fprofile-arcs 記錄每個分支語句執行的頻率

注意選項的大小寫。只在最後發行版時再使用優化。即使在最後發行版也應該加上-g選項。

幾種情境

以c++為例。
編譯單個檔案為可執行檔案:

g++ -Wall -W hello.cpp -o hello

編譯多個檔案為可執行檔案:

g++ -Wall -W main.cpp hello_fun.cpp -o newhello

編譯單個檔案為可執行檔案,連線靜態庫static library:

系統預設庫檔案在目錄/usr/lib/lib,還會自動搜尋/usr/local/lib//usr/lib/
相應的,系統預設標頭檔案在目錄,會自動搜尋/usr/local/include//usr/include/
顯式指定庫目錄與檔案,g++ -Wall -W calc.cpp /usr/lib/libm.a -o calc
或更好的寫法g++ -Wall -W -static calc.cpp -lm -o calc,連線系統自動搜尋庫目錄裡的庫檔案。注意g++優先使用shared library。如果找到同名.so就不會用同名.a。所以如果需要強制使用.a檔案的話,應使用-static
如果不在自動搜尋的庫目錄,兩種方法。一般使用命令列這一種。

  • 使用命令列-I新增搜尋標頭檔案的目錄和-L新增搜尋庫檔案的目錄,例如g++ -Wall -W -static -I/code/test/include -I/code/another/include -I. -L/code/test/lib -L/code/another/lib -L. calc.cpp -ltest。.表示當前目錄。
  • 或使用環境變數C_INCLUDE_PATH(C)或CPLUS_INCLUDE_PATH(C++)和LIBRARY_PATH。用如下語句新增搜尋路徑,之後就可以使用g++ -Wall -W -static calc.cpp -ltest了。
    1
    2
    3
    4
    
    CPLUS_INCLUDE_PATH = /code/test/include:/code/another/include:.:$CPLUS_INCLUDE_PATH
    export CPLUS_INCLUDE_PATH
    LIBRARY_PATH = /code/test/lib:/code/another/lib:.:$LIBRARY_PATH
    export LIBRARY_PATH
    

編譯單個檔案為可執行檔案,連線共享庫shared library:

如果只是用了系統預設庫,g++ -Wall -W calc.cpp -lm -o calc
除了前文系統自動搜尋庫檔案目錄之外,如果要新增其他共享庫目錄,必須在環境變數LD_LIBRARY_PATH中新增路徑。

1
2
LD_LIBRARY_PATH = /code/test/lib:/code/another/lib:.:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

之後可以使用g++ -Wall -W calc.cpp /usr/lib/libm.so -o calcg++ -Wall -W -I/code/test/include -I/code/another/include -I. -L/code/test/lib -L/code/another/lib -L. calc.cpp -ltest
使用ldd calc可以檢視該可執行檔案依賴哪些.so。

編譯多個檔案為靜態庫檔案.a:

將多個.o檔案集合為一個靜態庫檔案.a。其中cr表示”create and replace”。

1
2
3
g++ -Wall -c hello_fn.cpp
g++ -Wall -c bye_fn.cpp
ar cr libhello.a hello_fn.o bye_fn.o

可以檢視一個.a檔案裡包含哪些.o。使用ar t libhello.a

編譯多個檔案為共享庫檔案.so:

g++ x.cpp y.cpp z.cpp -fPIC -shared -o libtest.so。其中-fPIC表示編譯為位置獨立的程式碼。

預處理

可以用gcc選項定義巨集,-DNAME會定義一個名為NAME的巨集。如g++ -Wall -DTEST dtest.cpp,定義了名為TEST的巨集。定義的巨集會對程式碼產生影響。
也可以為巨集定義值,-DNAME=VALUE。如g++ -Wall -DNUM=100 dtestval.cppg++ -Wall -DNUM="2+2" dtestval.cppg++ -Wall -DMESSAGE="\"Hello,World!\"" dteststr.cpp。在程式碼中把巨集用括號括起來是好習慣。

效能

開啟-pg選項生成可執行檔案後。首先正常執行一次可執行檔案./hello,然後執行gprof hello檢視資料。
開啟-fprofile-arcs -ftest-coverage選項生成可執行檔案後。首先正常執行一次可執行檔案./hello,然後執行gcov hello.cpp檢視資料。未被執行的語句會在.gcov檔案中標記上-,可以通過執行grep '-' *.gcov查詢未被執行的語句。

makefile檔案

對於較大的工程,如果還像前文一樣寫命令列就太痛苦了。而使用makefile可以管理整個工程的編譯規則,之後用一個make命令就可自動編譯,相對方便很多。

推薦書籍《跟我一起寫Makefile》和官方文件。內容看起來還是很晦澀…(・-・*)還好現在有了自動化工具,用來自動生成的工具也可以用工具自動生成了。

最基礎的用法

makefile基本規則是:

target1 target2 target3: prerequisite1 prerequisite2
command1
command2

其中target是目標檔案。prerequisites是要生成target所需檔案或目標。command是make需要執行的命令。規則表示了一個檔案的依賴關係,即target依賴於prerequisites,生成規則為command。如果target不存在或prerequisites中至少一個檔案比target新的話,command定義的命令就會執行。這就是makefile中最核心的內容。

make工作的流程是:
當我們輸入make命令之後,

  1. 讀入所有的makefile檔案。
  2. 讀入被include包括的其他makefile檔案。
  3. 初始化檔案中的變數。
  4. 推導隱式規則,分析所有規則。
  5. 為所有的目標檔案建立依賴關係鏈。
  6. 根據依賴關係,決定哪些目標要重新生成。
  7. 執行生成命令。

makefile檔名應為Makefilemakefile

小示例

我為自己刷題的一個小專案寫了一個將幾個目錄下所有的原始檔一起編譯的一個makefile。在這裡看工程的目錄結構

1
2
3
4
5
6
7
8
9
10
11
12
13
14
EXEC = MyLeetCode
SRC_DIR = ../../catch ../../include ../../src
SOURCES := $(foreach x, ${SRC_DIR},\
	$(wildcard \
	$(addprefix ${x}/*,.cpp)))
OBJECTS = $(SOURCES:.cpp=.o)
CXX = g++
CXXFLAGS = -I../../catch -I../../include -I../../src -std=c++11
$(EXEC): $(OBJECTS)
	$(CXX) -o [email protected] $^
.PHONY : clean
clean:
	$(RM) $(OBJECTS)
	$(RM) $(EXEC)

使用CMake自動生成makefile

當處理較大型的專案時,手動書寫makefile就比較痛苦,這時用來用來自動化自動化工具makefile的自動化工具就是CMake。不過天下哪有那麼便宜的事,它也是要寫自己的CMakeLists.txt的。
推薦書籍《CMake實踐》《Mastering CMake》和官網幫助

簡介

CMake是一個跨平臺的自動化建構系統,它是用一個名為CMakeLists.txt的檔案來描述構建過程,可以產生標準的構建檔案,如Unix的makefile或Windows Visual Studio的projects/workspaces。
檔案CMakeLists.txt需要手工編寫,也可以通過編寫指令碼進行半自動的生成。

在Linux平臺下使用CMake生成makefile並編譯的流程如下:

  1. 安裝CMake。在Ubuntu上安裝cmake很簡單$sudo apt-get install cmake。如果想要其Qt圖形介面另需安裝sudo apt-get install cmake-qt-gui。一般不需要,在Ubuntu系統上用ccmake就可以了。
  2. 編寫CMakeLists.txt。
  3. 執行CMake。用cd將當前目錄設為生成目標目錄,執行命令ccmake srcdir(文字介面)或cmake -i(互動命令列),如果想使用Qt圖形介面使用cmake-gui
  4. Makefile已經生成。使用make命令進行編譯。
  5. 如果想清理工程。使用make clean

簡單語法
註釋:#
命令語法:COMMAND(引數1 引數2 ...)
字串列表:A;B;CA B C。分號或空格分隔的值。
變數(字串或字串列表):

set(Foo a b c)設定變數Foo。
command(${Foo})等價於command(a b c)
command("${Foo}")等價於command("a b c")
command("/${Foo}")轉義,和a b c無關聯。

流控制結構:

IF()...ELSE()/ELSEIF()...ENDIF()
WHILE()...ENDWHILE()
FOREACH()...ENDFOREACH()

正則表示式:

常用命令總結

命令 意義
INCLUDE_DIRECTORIES( “dir1” “dir2” … ) 標頭檔案路徑,相當於編譯器引數 -Idir1 -Idir2
AUX_SOURCE_DIRECTORY( “sourcedir” variable) 收集目錄中的檔名並賦值給變數
ADD_EXECUTABLE 可執行程式目標
ADD_LIBRARY 庫目標
ADD_CUSTOM_TARGET 自定義目標
ADD_DEPENDENCIES( target1 t2 t3 ) 目標target1依賴於t2 t3
ADD_DEFINITIONS( “-Wall -ansi”) 本意是供設定 -D… /D… 等編譯預處理需要的巨集定義引數,對比 REMOVE_DEFINITIONS()
TARGET_LINK_LIBRARIES( target-name lib1 lib2 …) 設定單個目標需要連結的庫
LINK_LIBRARIES( lib1 lib2 …) 設定所有目標需要連結的庫
SET_TARGET_PROPERTIES( … ) 設定目標的屬性 OUTPUT_NAME, VERSION, ….
MESSAGE(…) 這個指令用於向終端輸出使用者定義的資訊
INSTALL( FILES “f1” “f2”DESTINATION . ) DESTINATION 相對於 ${CMAKE_INSTALL_PREFIX}
SET( VAR value [CACHE TYPE DOCSTRING [FORCE]]) 定義與修改變數
LIST( APPEND/INSERT/LENGTH/GET/REMOVE_ITEM/REMOVE_AT/SORT …) 列表操作
STRING( TOUPPER/TOLOWER/LENGTH/SUBSTRING/REPLACE/REGEX …) 字串操作
SEPARATE_ARGUMENTS( VAR ) 轉換空格分隔的字串到列表
FILE( WRITE/READ/APPEND/GLOB/GLOB_RECURSE/REMOVE/MAKE_DIRECTORY …) 檔案操作
FIND_FILE 注意 CMAKE_INCLUDE_PATH
FIND_PATH 注意 CMAKE_INCLUDE_PATH
FIND_LIBRARY 注意 CMAKE_LIBRARY_PATH
FIND_PROGRAM
FIND_PACKAGE 注意 CMAKE_MODULE_PATH
EXEC_PROGRAM( bin [work_dir] ARGS <..> [OUTPUT_VARIABLE var] [RETURN_VALUE var] ) 執行外部程式
OPTION( OPTION_VAR “description” [initial value] )

變數
工程路徑

CMAKE_SOURCE_DIR PROJECT_SOURCE_DIR <projectname>_SOURCE_DIR表示工程頂層目錄。
CMAKE_BINARY_DIR PROJECT_BINARY_DIR <projectname>_BINARY_DIR表示生成目標目錄。
CMAKE_CURRENT_SOURCE_DIR表示當前處理的CMakeLists.txt所在的目錄。
CMAKE_CURRRENT_BINARY_DIR表示當前處理的CMakeLists.txt的目標目錄。
CMAKE_CURRENT_LIST_FILE輸出呼叫這個變數的CMakeLists.txt的完整路徑。

Debug和Release模式的構建

在CMakeList.txt檔案中使用SET(CMAKE_BUILD_TYPE Debug)
或命令列引數cmake DCMAKE_BUILD_TYPE=Release

編譯器引數

CMAKE_C_FLAGS CMAKE_CXX_FLAGS
也可以通過指令ADD_DEFINITIONS()新增。

包含路徑

CMAKE_INCLUDE_PATH配合FIND_FILE()以及FIND_PATH()使用。如果標頭檔案沒有存放在常規路徑(/usr/include, /usr/local/include等),則可以通過這些變數就行彌補。如果不使用FIND_FILEFIND_PATH的話,CMAKE_INCLUDE_PATH沒有任何作用。
CMAKE_LIBRARY_PATH配合配合FIND_LIBRARY()使用。否則沒有任何作用。
CMAKE_MODULE_PATHCMake為上百個軟體包提供了查詢器(finder):FindXXXX.cmake。當使用非CMake自帶的finder時,需要指定finder的路徑,這就是CMAKE_MODULE_PATH,配合FIND_PACKAGE()使用。

編寫CMakeLists.txt的示例

對於如下的目錄結構。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
+example
|
+--- CMakeList.txt
+--+ src/
|  |
|  +--- main.cpp
|  /--- CMakeList.txt
|
+--+ thirdparty/
|  |
|  +--- hello.h
|  +--- hello.cpp
|  /--- CMakeList.txt
|
/--+ build/
多資料夾編譯(手動)

將所有子資料夾中的原始檔包含進來,然後生成。

在頂資料夾中example的CMakeLists.txt中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cmake_minimum_required(VERSION 2.6)
project(HELLO)
# include src
include(src/CMakeLists.txt)
foreach(FILE ${FILES})
    set(subdir1Files ${subdir1Files} src/${FILE})
endforeach(FILE)
# include thirdparty
include(thirdparty/CMakeLists.txt)
foreach(FILE ${FILES})
    set(subdir2Files ${subdir2Files} thirdparty/${FILE})
endforeach(FILE)
# add the source files to the executable
add_executable(hello ${subdir1Files} ${subdir2Files})

在src目錄的CMakeLists.txt中:

1
2
# list the source files for this directory
set (FILES main.cpp)

在thirdparty目錄的CMakeLists.txt中:

1
2
# list the source files for this directory
set(FILES hello.h hello.cpp)
多資料夾編譯(自動)

和上一種方式一樣,只不過是自動包含。

在頂資料夾中example的CMakeLists.txt中:

1
2
3
4
5
cmake_minimum_required(VERSION 2.6)
project(HELLO)
AUX_SOURCE_DIRECTORY(./thirdparty subdir1Files)
AUX_SOURCE_DIRECTORY(./src subdir2Files)

            
           

相關推薦

Linux(Ubuntu)搭建ASP.NET Core環境

代碼 win ner tps tool 環境 pan test deb 今天來學習一下ASP.NET Core 運行在Ubuntu中。無需安裝mono 。 環境 Ubuntu 14.04.4 LTS 服務器版 全新安裝系統。 下載地址:http://mirrors.n

ubuntu搭建php後臺開發環境——ubuntu16.04+apach2.4.18+php7.0.28+mysql+PhpStorm

在ubuntu下搭建php後臺開發環境——ubuntu16.04+apache2.4.18+php7.0.28+mysql+PhpStorm 此篇文章是記錄自己在搭建php後臺開發環境的流程,適合新手。 名詞解釋 ubuntu——一款基於linux核心的作業系統,對標Window

ubuntu pycharm 構建ROS程式設計環境

1    安裝和破解pycharm 1.1    解壓下載好的pycharm包 1.2    下載破解檔案JetbrainsCrack-3.1-release-enc.jar link:http://idea.lanyus.

Ubuntu搭建Appium+python自動化環境記錄及遇到的錯誤記錄

     系統:Ubuntu 18.04.1 LTS   64位 搭建環境前準備     1.JDK 8安裝     2.android-sdk_r24.3.4-linux  

Ubuntu搭建spark叢集開發環境

之前在windows下搭建了一個spark的開發環境,但是後來發現如果想要搞spark streaming的例子的話在Linux下使用更方便,於是在Ubuntu下面搭建一下spark開發環境,記錄以做備忘之用。 2 .  . 3 .之後利用XSheel5將下載的壓縮包傳遞

Ubuntu搭建Android SDK開發環境(圖文)

1:安裝JDK http://blog.sina.com.cn/s/blog_518b4cbb0101bc06.html參考這個就可以了。 2:下載安裝eclipse 這裡的eclipse不能直接從ubuntu軟體倉庫中下載,那個軟體倉庫下載的eclipse在裝ADT時

Ubuntu搭建C/C++程式設計環境

要安裝程式設計環境,在Terminal中執行sudo apt-get install build-essential。 桌面系統的快捷鍵 如果不用桌面系統,可以關閉。 開啟Terminal的快捷鍵是Ctrl+Alt+T,使用快捷鍵Ctrl+Super+Up最大化,Alt+F4關閉。 使用快捷鍵Alt+Ta

Ubuntueclipse編譯c/c++環境配置

1,下載帶CDT外掛的eclipse版本        sudo apt-get install eclipse-cdt 2,安裝後啟動建立c++專案,然後在/project/properties下修改相關配置如下圖。不然會出現

UbuntuSublime Text3搭建python3.5程式設計環境小記錄

安裝環境: Ubuntu16 x64 sublime text 3 使用系統預裝的python3.5 TIPs: 1.在Ubuntu命令列終端裡輸入“which python3.5”來檢視python3.5的安裝路徑。 在我的Ubuntu裡,python預設是2.7,同時

Objective C 學習心得 (一):--Windows搭建objective C開發環境

      最近打算針對iPhone、iPod touch和iPad開發一些應用,所以,需要開始學習Objective C(蘋果推出的類似C語言的開發語言)。由於蘋果的自我封閉的產業鏈發展模式(從晶片、機器、開發語言、終端產品、服務)的限制,要想開發針對蘋果iPhone等產品

聯發科Linkit 7688 (一) 上手及在Mac搭建OpenWrt交叉編譯環境C語言編譯Hello,World

Linkit 系列博文: 淘了一塊聯發科 Linkit 7688 DUO 開發板(99元)。 這是一塊物聯網開發板,基於聯發科 Linkit 7688晶片、同時相容Arduino. 內建OpenWrt系統、支援Wifi聯網,用於開發智慧路由器、智慧物體等。

UbuntuGDB除錯C語言程式

轉自:http://zhgeaits.me/other/2013/03/17/gdb-study-notes.html,感謝博主。 1.GDB是什麼 GDB是GNU開源組織釋出的一個UNIX下的程式除錯工具,專門用來除錯C,C++這些程式的了,而且都是命令列模式的。 2.準備工作 平

ubuntudlib編譯C++(共享庫)及使用,即cmake編譯dlib開原始檔的步驟和檔案結構,

一、cmake的工作機制         使用CMake很簡單。 構建過程是通過建立一個或多個CMakeLists檔案(實際上是CMakeLists.txt,但本指南將在大多數情況下脫離擴充套件)控制在專案的每個目錄中。

Ubuntu搭建spark2.4環境(單機版)

說明:單機版的Spark的機器上只需要安裝JDK即可,其他諸如Hadoop、Zookeeper(甚至是scala)之類的東西可以一概不安裝。 叢集版搭建:Spark2.2叢集部署和配置 一、安裝JDK1.8 1、下載JDK1.8,地址 2、將下載的檔案儲存在 /home/qq/j

ubuntu 搭建深度學習環境ubuntu18.04+anaconda3+cuda9.0+cudnn7.0+pytorch+nltk

一、anaconda安裝簡單,選擇linux對應的x86版本下載,進入下在目錄,執行對應版本的安裝命令bash Anaconda3-*.sh,按照提示安enter與yes即可 二、cuda9.0也可以裝在18.04的ubuntu系統上,18.04相容16.04

Ubuntu搭建Python3.7環境

Python3.7在2018年6月27號正式版本釋出. 在Ubuntu下,通過原始碼安裝來自行搭建編輯. 進入終端介面,然後進行以下操作即可。 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.t

Qt在Windows的三種程式設計環境搭建

從QT官網可以得知其支援的平臺、編譯器和偵錯程式的資訊如圖所示: (Home | Docs | Qt Creator 3.0 | Debuggingand Analyzing | Setting Up Debugger) 本篇主要講解QT在Windo

Ubuntu搭建Java開發環境

安裝與設定JDK Sun JDK的安裝基本上有兩種方式: 1. 通過Ubuntu提供的包管理工具進行安裝 Ubuntu在其包倉庫裡都包括有JDK的安裝,只要sources.list設定正確,通過apt-get, aptitude, Synaptic Package

Ubuntu搭建python開發環境

Ubuntu下搭建python開發環境 1. 下載安裝python執行環境 Ps:ubuntu自帶python2.7環境,如需下載安裝,可使用以下命令 首先輸入sudo passwd 輸入root相

ubuntu搭建hadoop環境(單機配置)

電腦系統版本:windows7(32位) VMware版本:VMware10 1、安裝ubuntu 版本:16.04.1-desktop-i386 安裝完之後,需要重啟系統,重啟時可能會出現 piix4_smbus : Host SMBus controller