Linux ubuntu對于cmake的版本更新

問題產生

  • 在ubuntu環境下運行C++代碼,工程文件中CMakeLists文件顯示要求cmake的版本最低是3.15,但是我的本地版本是3.11,雖然修改CMakelists文件為3.11也是可以編譯通過,但是潛在的問題是未知的。

查看本地cmake的版本

  • cmake --version

錯誤做法

  • 卸載原來的cmake?sudo apt-get autoremove cmake
  • 卸載會使得使用先前cmake編譯的包文件全部卸載,這是極其危險的

正確做法

  • 從官網下載所需要的安裝包?cmake的下載地址
  • 使用ubuntu環境,一般下載的文件的名字是 cmake-3.xx.xx-Linux-x86_64.tar.gz
  • 將壓縮包移動到/opt/目錄下,/opt里的文件則是安裝系統后用戶自己安裝的其他應用軟件,一般是源碼包的軟件,在當前下載的文件夾下就不可以
  • 進入/opt文件夾下,解壓壓縮包 tar -xvzf?cmake-3.xx.xx-Linux-x86_64.tar.gz
  • 進入解壓后的文件夾,cd?cmake-3.xx.xx-Linux-x86_64
  • 里面會有四個目錄 bin doc man share
  • 這個版本是免安裝的,因此沒有./configure 命令或者 ./bootstrap 命令
  • 配置~/.bashrc文件 使用命令gedit ~/.bashrc??
  • 設置cmake的環境變量?export PATH=/opt/cmake-3.xx.xx-Linux-x86_64/bin:$PATH
  • 使用強制方式,建立軟連接?ln -sf /opt/cmake-3.xx.x-Linux-x86_64/bin/* /usr/bin/
  • 在使用cmake時實際上就是調用了cmake-3.13.4-Linux-x86_64/bin/路徑下的cmake來執行的,因此將這個bin下的所有文件全部軟連接到/usr/bin/下面,這樣就完成了sudo cmake的升級
  • 驗證版本 cmake --version

參考鏈接

  • cmake的版本的更新以及和sudo cmake的區別

問題

  • 使用這個方式之后,發現在普通用戶下還是之前的舊的版本,但是在root用戶下是最新的版本
  • 導致sudo命令不可以使用,即使安裝了也沒有用。權限很高的命令,只可以通過切換root用戶的方式進行使用,使用命令 su root

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446982.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446982.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446982.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java基礎——Java IO詳解

一、概述 1、Java IO Java IO即Java 輸入輸出系統。不管我們編寫何種應用,都難免和各種輸入輸出相關的媒介打交道,其實和媒介進行IO的過程是十分復雜的,這要考慮的因素特別多,比如我們要考慮和哪種媒介進行IO(文件、控…

Java基礎——Java NIO詳解(二)

一、簡介 在我的上一篇文章Java NIO詳解(一)中介紹了關于標準輸入輸出NIO相關知識, 本篇將重點介紹基于網絡編程NIO(異步IO)。 二、異步IO 異步 I/O 是一種沒有阻塞地讀寫數據的方法。通常,在代碼進行 rea…

Java基礎——Java NIO詳解(一)

一、基本概念 1、I/0簡介 I/O即輸入輸出,是計算機與外界世界的一個借口。IO操作的實際主題是操作系統。在java編程中,一般使用流的方式來處理IO,所有的IO都被視作是單個字節的移動,通過stream對象一次移動一個字節。流IO負責把對象…

MAC上Git安裝與GitHub基本使用

參考鏈接 MAC上Git安裝與GitHub基本使用

Java基礎——深入理解Java線程池

簡介 我們使用線程的時候就去創建一個線程,這樣實現起來非常簡便,但是就會有一個問題: 如果并發的線程數量很多,并且每個線程都是執行一個時間很短的任務就結束了,這樣頻繁創建線程就會大大降低系統的效率,…

密碼機項目安裝軟件時候出現的問題以及對應的解決辦法

Could NOT find Boost (missing: locale) (found version "1.65.1") 使用命令 apt-get install libboost-locale-dev 進行安裝 解決普通用戶cmake版本11,而root用戶版本15,clion對于版本兼容的問題 修改clion里面的toolchain,將其…

Java基礎——線程及并發機制

前言 在Java中,線程是一個很關鍵的名詞,也是很高頻使用的一種資源。那么它的概念是什么呢,是如何定義的,用法又有哪些呢?為何說Android里只有一個主線程呢,什么是工作線程呢。線程又存在并發,并…

密碼機 密鑰管理項目安裝配置 從零開始

安裝gcc 更新sudo apt-get update下載gcc sudo apt-get install gcc參考鏈接 不推薦 安裝g 下載g sudo apt-get install g 安裝make sudo apt -get install make參考鏈接 安裝cmake 下載地址參考鏈接 安裝ssh sudo apt-get install ssh 安裝git和配置 sudo apt-get inst…

Androud 如何有效減少重復代碼

前言 重復的代碼一直都是可維護性的大敵,重構的重要任務之一也就是要去除掉重復的代碼,有效的減少重復代碼,可以大大提高軟件的擴展性。 在Android開發中,很容易產生重復的代碼。因為Android是組件,模板式開發&#xf…

解決在sample文件夾里面寫代碼,在測試的時候因為virtual原因,make編譯報錯

代碼的結構 錯誤顯示 解決辦法 添加一句話,具體的cpp依據情況而定set_source_files_properties(${PROJECT_SOURCE_DIR}/src/sample_storage_test.cpp COMPILE_FLAGS "-Wno-unused-parameter")

Android SharedPreferences總結及優化

一、SharedPreferences簡介 Android 中的 SharedPreferences(后續簡稱SP)是輕量級的數據存儲方式,能夠保存簡單的數據類型,比如 String、int、boolean 值等。應用場合主要是數據比較少的配置信息。其內部是以 XML 結構保存在 /dat…

Java基礎——深入理解ReentrantLock

一、簡介在Java中通常實現鎖有兩種方式,一種是synchronized關鍵字,另一種是Lock。二者其實并沒有什么必然聯系,但是各有各的特點,在使用中可以進行取舍的使用。二、ReentrantLock與synchronized的比較相同點: &#xf…

使用開源的openssl的md5頭文件,實現對于文件的md5代碼

需要安裝openssl的庫 sudo apt-get install opensslsudo apt-get install libssl-dev參考鏈接 代碼 #include "openssl/md5.h" #include <iostream> #include <fstream> #include <iomanip>//#define MAX_DATA_BUFF 1024; //#define MD5_LENGTH…

Android 多進程開發

前言正常情況下&#xff0c;一個apk啟動后只會運行在一個進程中&#xff0c;其進程名為AndroidManifest.xml文件中指定的應用包名&#xff0c;所有的基本組件都會在這個進程中運行。但是如果需要將某些組件&#xff08;如Service、Activity等&#xff09;運行在單獨的進程中&am…

clion中鏈接openssl庫

錯誤顯示 前提條件 apt-get install opensslapt-get install openssl-dev 解決辦法 在CMakeLists.txt文件中加入如下命令link_libraries(crypto) 參考鏈接 無法將openssl庫鏈接到CLion C 程序c - 無法將openssl庫鏈接到CLion C程序

Java中String、StringBuffer、StringBuilder三者的區別

一、簡介String、StringBuffer、StringBuilder三個類之間的區別主要是在兩個方面&#xff1a;運行速度和線程安全。二、區別1、運行速度&#xff0c;或者說是執行速度在這方面運行速度快慢為&#xff1a;StringBuilder > StringBuffer > String StringString為字符串常量…

Ubuntu環境下,使用clion編譯器,使用開源opensll的對稱AES算法對于文件進行加密,C++代碼

前提準備條件 需要安裝openssl需要安裝openssl-dev需要配置CMakeLists.txt文件集體內容可以參考我提供的相關參考鏈接 AES_file.h #include <openssl/aes.h> #include <iostream> #include <fstream> #include <cstring>#define RELEASE_ARRAY(P) if…

Java提高篇 —— Java關鍵字之static的四種用法

一、前言 在java的關鍵字中&#xff0c;static和final是兩個我們必須掌握的關鍵字。不同于其他關鍵字&#xff0c;他們都有多種用法&#xff0c;而且在一定環境下使用&#xff0c;可以提高程序的運行性能&#xff0c;優化程序的結構。下面我們先來了解一下static關鍵字及其用法…

C++ 使用move來刪除用戶指定的文件

代碼 #include <iostream>bool remove_file(std::string path){if (remove(path.c_str())0){std::cout << "success!" << std::endl;}else{std::cout << "False!" << std::endl;} } int main() {std::string path "/…