git 安装和使用--转载

本文详细介绍如何使用Git将本地项目上传到GitHub,包括本地版本库创建、项目添加与提交、SSH密钥配置、远程仓库关联及推送流程。

   第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。

       你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建。

       现在我通过命令行在桌面新建一个TEST文件夹(你也可以在其他任何地方创建这个文件夹),并且进入这个文件夹

                                          

        

       第二步:通过命令git init把这个文件夹变成Git可管理的仓库

       

       这时你会发现TEST里面多了个.git文件夹,它是Git用来跟踪和管理版本库的。如果你看不到,是因为它默认是隐藏文件,那你就需要设置一下让隐藏文件可见。

       

       第三步:这时候你就可以把你的项目粘贴到这个本地Git仓库里面(粘贴后你可以通过git status来查看你当前的状态),然后通过git add把项目添加到仓库(或git add .把该目录下的所有文件添加到仓库,注意点是用空格隔开的)。在这个过程中你其实可以一直使用git status来查看你当前的状态。

       

       

       这里提示你虽然把项目粘贴过来了,但还没有add到Git仓库上,然后我们通过git add .把刚才复制过来的项目全部添加到仓库上。

       

       

        第四步:用git commit把项目提交到仓库。

        

        -m后面引号里面是本次提交的注释内容,这个可以不写,但最好写上,不然会报错,详情自行Google。 好了,我们本地Git仓库这边的工作做完了,下面就到了连接远程仓库(也就是连接Github)

      由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下:

      第五步:创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建

 

   $ ssh-keygen -t rsa -C "youremail@example.com"

       然后一路回车。这时你就会在用户下的.ssh目录里找到id_rsa和id_rsa.pub这两个文件   

 

       

      第六步:登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:

       

       

    

        第七步:在Github上创建一个Git仓库。

     你可以直接点New repository来创建,比如我创建了一个TEST2的仓库(因为我里面已经有了一个test的仓库,所以不能再创建TEST仓库)。

   

        第八步:在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,根据创建好的Git仓库页面的提示,可以在本地TEST仓库的命令行输入:

 

$ git remote add origin https://github.com/guyibang/TEST2.git

        

 

        注意origin后面加的是你Github上创建好的仓库的地址。

        

      第九步:关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了,通过:

 

$ git push -u origin master

       由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:

 

 

$ git push origin master

 

        上传项目的过程可能需要等一段时间,完成之后是这样的:

        

        这时候你再重新刷新你的Github页面进入刚才新建的那个仓库里面就会发现项目已经成功上传了:

      

        至此就完成了将本地项目上传到Github的整个过程。

      另外,这里有个坑需要注意一下,就是在上面第七步创建远程仓库的时候,如果你勾选了Initialize this repository with a README(就是创建仓库的时候自动给你创建一个README文件),那么到了第九步你将本地仓库内容推送到远程仓库的时候就会报一个failed to push some refs to https://github.com/guyibang/TEST2.git的错。

      

      这是由于你新创建的那个仓库里面的README文件不在本地仓库目录中,这时我们可以通过以下命令先将内容合并以下:

 

$ git pull --rebase origin master

       

 

       这时你再push就能成功了。

 

     总结:其实只需要进行下面几步就能把本地项目上传到Github

     1、在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库;

     2、把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库;

     3、再通过git commit -m "注释内容"把项目提交到仓库;

     4、在Github上设置好SSH密钥后,新建一个远程仓库,通过git remote add origin https://github.com/guyibang/TEST2.git将本地仓库和远程仓库进行关联;

     5、最后通过git push -u origin master把本地仓库的项目推送到远程仓库(也就是Github)上;(若新建远程仓库的时候自动创建了README文件会报错,解决办法看上面)。

sudo apt-get install -y \ cmake \ g++ \ git \ google-mock \ libboost-all-dev \ libcairo2-dev \ libeigen3-dev \ libgflags-dev \ libgoogle-glog-dev \ liblua5.2-dev \ libsuitesparse-dev \ libwebp-dev \ ninja-build \ protobuf-compiler \ python-sphinx 2.安装protobuf3 2.1卸载ros自带的protobuf2 sudo apt-get remove libprotobuf-dev which protoc ###显示protoc的路径如果没有显示则下面这条命令省略 rm /usr/local/bin/protoc ###以which protoc显示的路径为准,默认一般为usr/bin/protoc 完成卸载 2.2安装 protobuf3 1.安装依赖库 sudo apt-get inst all autoconf automake libtool curl make g++ unzip 2.git submodule update --init --recursive ###这一步克隆子模块必须有,否则后面会报错(报找不到文件的错) git clone -b v3.6.0 https://github.com/protocolbuffers/protobuf.git ###克隆版本为3.6.0的protobuf cd protobuf git submodule update --init --recursive ###克隆protobuf的子模块,主要是gtest 3.编译并安装protobuf cd protobuf ###运行脚本 ./autogen.sh ./configure make ###如果没有前面的克隆子模块,make check会失败但是可以继续make install,后续使用可能出现问题 make check sudo make install sudo ldconfig 4.检查protobuf相关信息 ###输出protobuf版本信息则表示安装成功 protoc --version ###查看安装位置 which protoc ###默认下载位置为 /usr/local/bin/protoc ###carto的搜索protoc的路径为/ usr/bin/protoc,选择直接copy过去 sudo cp /usr/local/bin/protoc /usr/bin 3.创建工作空间,下载cartographer源码 mkdir carto_ws cd carto_ws mkdir src catkin_init_workspace cd src git clone https://github.com/googlecartographer/cartographer_ros.git git clone https://github.com/googlecartographer/cartographer.git git clone https://github.com/ceres-solver/ceres-solver.git 4.安装Ceres-solver(报错1,2) ###接上面3内容 ###出现问题比较大,建议直接看报错2的方法 cd ceres-solver mkdir ceres-bin cd ceres-bin cmake .. ###########c ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接本声明。 原文链接:https://blog.youkuaiyun.com/qq_53004665/article/details/142057918到camke..出现cmake .. -- Build type: Release CMake Deprecation Warning at /usr/src/googletest/googlemock/CMakeLists.txt:41 (cmake_minimum_required): Compatibility with CMak
03-25
<think>好的,我现在需要处理用户在CMake构建过程中遇到的GoogleTest最低版本警告,同时确保Protobuf3正确安装并适配Cartographer及其依赖项如Ceres-Solver的需求。首先,我得理清问题的各个部分,并找到对应的解决方法。 首先,关于GoogleTest的版本警告。用户可能在构建过程中遇到CMake提示GoogleTest版本过低的警告。这通常是因为项目要求的GTest最低版本高于系统中已安装的版本。解决方法通常是升级GTest到符合要求的版本。在Ubuntu系统中,可以通过源码安装最新版本,或者使用包管理器安装较新的版本。例如,使用apt安装libgtest-dev,但可能版本不够新,所以可能需要从GitHub克隆GoogleTest仓库,编译并安装。需要注意安装路径,确保CMake能够找到新安装的版本。另外,可能需要设置GTEST_ROOT环境变量来指定新版本的路径,或者在CMake命令中指定-DGTEST_ROOT=路径。 接下来,关于Protobuf3的正确安装配置。用户提到参考了引用[3]中的安装脚本,但手动下载可能需要修改内容。Protobuf3的安装步骤一般包括下载源码、编译、安装。需要确保安装的版本符合Cartographer的要求。例如,Cartographer可能要求Protobuf3.6.1或更高版本。安装后,需要确认protoc的版本是否正确,并设置环境变量如PROTOBUF_PROTOC_EXECUTABLE指向新安装的protoc。此外,可能需要将Protobuf的安装路径添加到系统的PATHLD_LIBRARY_PATH中,以确保其他依赖项如Ceres-Solver能够正确找到。 然后,处理依赖项之间的兼容性。Ceres-Solver可能依赖于ProtobufAbseil等库。引用[2]中提到安装abseil-cpp的方法,用户需要确保这些依赖项正确安装并链接。例如,在安装Ceres-Solver时,如果缺少SparseLinearAlgebraLibrary,可能需要安装SuiteSparse或其他线性代数库。此外,Cartographer的依赖项可能包括Protobuf3Ceres-Solver,因此需要确保这些库的版本相互兼容。如果Protobuf3安装不正确,可能导致Ceres-Solver在构建时找不到所需的组件,从而引发错误。 此外,用户可能遇到CMake找不到正确版本的Protobuf或GTest的问题。这时需要检查CMake的查找路径,确保新安装的库路径被包含在CMAKE_PREFIX_PATH中。例如,在构建Cartographer时,可能需要指定Protobuf的安装路径:-DProtobuf_DIR=/path/to/protobuf/lib/cmake/protobuf。 还需要考虑系统原有库与新安装库之间的冲突。如果系统已经安装了旧版本的Protobuf或GTest,可能需要卸载它们,或者通过调整环境变量CMake参数来优先使用安装的版本。例如,使用update-alternatives命令来切换protoc的版本。 最后,综合所有步骤,可能需要按照一定的顺序安装依赖项:先安装Protobuf3,然后安装abseil-cpp,接着安装Ceres-Solver,最后安装Cartographer。在每个步骤中,确保CMake能够找到正确的依赖项版本,并通过环境变量或CMake参数指定路径。如果出现构建错误,需根据错误信息调整安装步骤,例如安装缺失的依赖项或修复版本不兼容问题。 总结来说,处理步骤大致分为:升级GTest版本,正确安装Protobuf3并配置环境,确保所有依赖项的兼容性正确路径设置,最后按顺序构建各个组件。需要仔细检查每个步骤的输出信息,确认没有警告或错误,并验证安装后的库是否被正确链接。</think>### CMake构建问题分析与解决方案 #### 一、处理GoogleTest最低版本警告 1. **升级GoogleTest版本** 使用源码编译安装最新版本: ```bash git clone https://github.com/google/googletest.git cd googletest mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local make -j4 sudo make install ``` **验证安装**: ```bash gtest-config --version ``` 2. **配置CMake优先使用新版本** 在Cartographer构建命令中指定GTEST_ROOT: ```bash catkin_make_isolated --install --use-ninja -DGTEST_ROOT=/usr/local ``` 或通过环境变量: ```bash export GTEST_ROOT=/usr/local ``` #### 二、Protobuf3正确安装与配置 1. **手动安装Protobuf3** 参考引用[3]的脚本逻辑,分步执行: ```bash # 下载源码 git clone -b v3.6.1 https://github.com/protocolbuffers/protobuf.git cd protobuf git submodule update --init --recursive ./autogen.sh ./configure --prefix=/usr/local make -j4 sudo make install # 更新动态库链接 sudo ldconfig ``` 2. **验证Protobuf3安装** ```bash protoc --version # 应显示3.6.1或更高 ``` 3. **适配Cartographer依赖** 在构建命令中显式指定Protobuf路径: ```bash catkin_make_isolated --install --use-ninja \ -DProtobuf_DIR=/usr/local/lib/cmake/protobuf ``` #### 三、依赖项兼容性处理 1. **安装abseil-cpp(引用[2]方法)** 确保其与Ceres-Solver兼容: ```bash cd ceres-solver/third_party git clone https://github.com/abseil/abseil-cpp.git cd abseil-cpp mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_FLAGS=-fPIC make -j4 sudo make install ``` 2. **修复Ceres-Solver组件缺失问题** 若出现`SparseLinearAlgebraLibrary`错误(引用[1]): ```bash sudo apt-get install libsuitesparse-dev # 安装SuiteSparse ``` 重新配置Ceres-Solver: ```bash cmake .. -DBUILD_SHARED_LIBS=ON -DUSE_SYSTEM_SUITESPARSE=ON ``` #### 四、完整构建流程示例 ```bash # 1. 安装Protobuf3 # 2. 安装abseil-cpp # 3. 安装Ceres-Solver依赖项(如SuiteSparse) # 4. 构建Cartographer cd catkin_ws catkin_make_isolated --install --use-ninja \ -DGTEST_ROOT=/usr/local \ -DProtobuf_DIR=/usr/local/lib/cmake/protobuf ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值