在Linux中使用VS Code编译调试C++项目(gcc/g++、Makefile入门、vs code)

最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试的一些注意事项。

关于VS Code在Linux下的安装这里就不提了,不管是CentOS还是Ubuntu,如果不懂且搜Q足够的情况下,你会解决的。

一. 前置知识——gcc/g++的编译链接过程

在Windows下,如果你用Visual Studio进行开发,C/C++的编译器一般采用微软提供的MSBuild;在Linux下C/C++的编译器大多采用gcc/g++。既然要在Linux下进行C++开发,很有必要了解一下g++编译器的一些基本知识。

假设我现在有一个最简单的C++文件:

#include <iostream>
using namespace std;
int main() {
     cout << "Hello, world!!!!" << endl;
     return 0;
}

接下来如何编译呢?简单来说分成两步:先编译,再链接

1. 安装g++编译器

启动终端,进入root模式,安装gcc和g++

Ubuntu:

> sudo apt-get install build-essential<br><br>xxx@xxx:~$ gcc --version
> sudo apt-get install g++-4.8
> g++ --version

CentOS:

> su
> yum install gcc
> gcc --version
> yum install gcc-g++
> g++ --version

2. 编译hello.cpp

> g++ -c hello.cpp

输出结果是一个hello.o文件,这是编译过程的生成的中间文件。-c 表示只编译,不链接。

3. 链接hello.o生成hello.out

g++ -o hello.out hello.o

输出结果是一个hello.out文件,这是最终的可执行文件。-o 表示输出文件,hello.o是上一步生成的.o文件。

当然,如果第2、3步是可以合并执行,直接执行命令

g++ -o hello.out hello.cpp

然而第2、3步分开执行是有意义的,后面会讲到。

4. 运行hello.out

最后执行以下hello.out验证一下输出结果呗

./hello.out

二. 构建项目

实际开发过程中当然不可能只有一个cpp这么简单,有时候会有非常多的.h和.cpp文件相互配合,那么上面直接通过g++编译可执行文件就没那么简单了。我们需要借助Make这个强大的项目构建工具,帮助我们构建和组织项目代码。

假设现在有如下3个文件:hw2.cpp、solution.h和solution.cpp

/* solution.h */
class Solution {
public:
    void Say();
};

/* solution.cpp */
#include <iostream>
#include "solution.h"
void Solution::Say(){
   std::cout << "HI!" << std::endl;
}

/* hw2.cpp */
#include "solution.h"
int main () {
    Solution sln;
    sln.Say();
    return 0;
}

可以看到这个简单例子包括头文件引用、定义和实现分离等情况,如果直接g++ -o hw2.out hw2.cpp将会报未定义引用的错误:

> g++ -o hw2.out hw2.cpp 
/tmp/ccIMYTxf.o:在函数‘main’中:
hw2.cpp:(.text+0x10):对‘Solution::Say()’未定义的引用
collect2: 错误:ld 返回 1

这时Make就该大显身手了。

首先我们还需要了解一下makefile。

在项目的根目录下创建一个makefile文件,以告诉Make如何编译和链接程序。

build : hw2.o solution.o
    g++ -o build hw2.o solution.o #注意前面必须是tab,不能是空格
hw2.o : hw2.cpp solution.h
    g++ -g -c hw2.cpp
solution.o : solution.h solution.cpp
    g++ -g -c solution.cpp
clean :
    rm hw2.o solution.o build

先来解释一下makefile的基本语法规则:

target ... : prerequisites ...
  command    #注意前面是tab

target是一个目标文件,可以是Object File,也可以是执行文件,还可以是一个标签;

prerequisites是要生成那个target所需要的文件或是目标;

command是make需要执行的命令(任意的Shell命令)。

说白了就是target这一个或多个目标,依赖于prerequisites列表中的文件,其执行规则定义在command里。如果prerequisites列表中文件比target要新,就会执行command,否则就跳过。这就是整个make过程的基本原理。

那么,我们回头看看上面定义的makefile文件,我们解释一下每两行的作用

build : hw2.o solution.o
    g++ -o build hw2.o solution.o

target是build,依赖于hw2.o 和 solution.o,执行的命令是 g++ -o build hw2.o solution.o

意思是通过g++链接hw2.o和solution.o,生成可执行文件build,prerequisites有两个.o文件,是因为代码里hw2引用了solution.h。

hw2.o : hw2.cpp solution.h
     g++ -g -c hw2.cpp

target是hw2.o,依赖于hw2.cpp和solution.h,执行命令是g++ -g -c hw2.cpp

意思是通过g++编译hw2.cpp文件,生成hw2.o文件,g++命令中 -g 表示生成的文件是可调试的,如果没有-g,调试时无法命中断点。

solution.o : solution.h solution.cpp
    g++ -g -c solution.cpp

同上,编译solution.cpp文件,生成solution.o文件。

clean :
    rm hw2.o solution.o build

这里clean不是一个可执行文件,也不是一个.o文件,它只不过是一个动作名字,类似于label的作用,make不会去找冒号后的依赖关系,也不会自动执行命令。如果要执行该命令,必须在make后显示指出整个动作的名字,如make clean。

好了,接下来说一下make的工作原理。在默认的方式下,我们只需输入make,则发生了以下行为:

a. make在当前目录下找名为makefile或Makefile的文件;

b. 如果找到,它会找文件中的第一个target,如上述文件中的build,并作为终极目标文件;

c. 如果第一个target的文件不存在,或其依赖的.o 文件修改时间要比target这个文件新,则会执行紧接着的command来生成这个target文件;

d. 如果第一个target所依赖的.o文件不存在,则会在makefile文件中找target为.o的依赖,如果找到则执行command,.o的依赖必是.h或.cpp,于是make可以生成 .o 文件了

e. 回溯到b步执行最终目标

看一下执行结果:

> make
g++ -g -c hw2.cpp
g++ -g -c solution.cpp
g++ -o build hw2.o solution.o #注意前面必须是tab,不能是空格
> ./build <br><em>HI!<br></em>[xxx@xxx ~]$

由于makefile文件中加了-g这一选项,于是可以通过gdb进行调试,并且会命中断点,这里感兴趣可以再了解一下gdb的使用。

接下来我们要说到如何通过VS Code进行调试。

三. 在VS Code中编译调试

首先安装完VS Code之后,还需要安装一下扩展cpptools,请自行完成。

在这里插入图片描述
点击菜单 查看-> 调试,或直接快捷键ctrl + shift + D

在这里插入图片描述

点击设置图标,在弹出的选择环境中选择C++(GDB/LLDB),会自动创建一个launch.json文件

在这里插入图片描述

顾名思义,laucn.json的作用是告诉VS Code如何执行启动任务,也就是我们要把什么文件启动起来,在上述例子中显然是build这个可执行文件了。修改一下json文件中波浪线的program节点,改成**${workspaceRoot}/build**,其余的暂时不变

{
     "version": "0.2.0",
     "configurations": [
         {
             "name": "C++ Launch",
             "type": "cppdbg",
             "request": "launch",
             "program": "${workspaceRoot}/build",
             "args": [],
             "stopAtEntry": false,
             "cwd": "${workspaceRoot}",
             "environment": [],
             "externalConsole": true,
             "linux": {
                 "MIMode": "gdb"
             },
             "osx": {
                 "MIMode": "lldb"
             },
             "windows": {
                 "MIMode": "gdb"
             }
         },
         {
             "name": "C++ Attach",
             "type": "cppdbg",
             "request": "attach",
             "program": "${workspaceRoot}/build",
             "processId": "${command.pickProcess}",
             "linux": {
                 "MIMode": "gdb"
             },
             "osx": {
                 "MIMode": "lldb"
             },
             "windows": {
                 "MIMode": "gdb"
             }
         }
     ]
}

接着我们尝试一下F5,开始调试,结果可以看到报了一个缺少build文件的错误。原因是我们还没执行make编译出可执行文件呢。我们在launch.json文件中,添加一个preLaunchTask的节点,并设置值为“build”。注意这里的build不是指可执行文件build,而是一个名为build的任务!

{
     "version": "0.2.0",
     "configurations": [
         {
             "name": "C++ Launch",
             "type": "cppdbg",
             "request": "launch",
             "program": "${workspaceRoot}/build",
             "args": [],
             "stopAtEntry": false,
             "cwd": "${workspaceRoot}",
             "environment": [],
             "externalConsole": true,
             "preLaunchTask": "build",
             "linux": {
                 "MIMode": "gdb"
             },
             "osx": {
                 "MIMode": "lldb"
             },
             "windows": {
                 "MIMode": "gdb"
             }
         },
         {
             "name": "C++ Attach",
             "type": "cppdbg",
             "request": "attach",
             "program": "${workspaceRoot}/build",
             "processId": "${command.pickProcess}",
             "linux": {
                 "MIMode": "gdb"
             },
             "osx": {
                 "MIMode": "lldb"
             },
             "windows": {
                 "MIMode": "gdb"
             }
         }
     ]
}

再尝试F5,会提示一个信息:
在这里插入图片描述

点击配置任务运行程序,并选择Others, 会自动生成一个tasks.json文件,这个文件的作用就是告诉launch或者编译器需要执行什么操作。显然我们这里要执行make命令,修改tasks.json为如下:

{
     "version": "0.1.0",
     "command": "make",
     "showOutput": "always",
     "tasks": [
         {
             "taskName": "clean"
         },
         {
             "taskName": "build",
             "problemMatcher": {
                 "owner": "cpp",
                 "fileLocation":  ["relative", "${workspaceRoot}"],
                 "pattern": {
                     "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                     "file": 1,
                     "line": 2,
                     "column": 3,
                     "severity": 4,
                     "message": 5
                 }
             }
         }
     ]
}

其中tasks节点是一组任务,注意到其中一个名为build的任务,这就是launch.json文件中指定的preLaunchTask,表明在启动可执行程序之前,会先执行一下preLaunchTask即这里的build任务,重新make一下代码,更新可执行程序之后再启动。

当然也可以指运行tasks这些任务而不启动可执行程序,直接ctrl + shift + B,在VSC的console里可以看到和终端执行一样的输出:

在这里插入图片描述

执行完后,项目中会多出.o和build文件

在这里插入图片描述

关于VS Code的launch.json和tasks.json中更多节点的含义,参考

https://code.visualstudio.com/docs/editor/debugging

https://code.visualstudio.com/docs/editor/tasks

接着设置好断点之后F5,就可以进入断点调试了

在这里插入图片描述


本篇总结了gcc/g++和make/makefile的基础知识,以及在Linux下使用VS Code进行调试开发的方法,希望对正在挖坑的同学有所帮助,坑避免一个是一个。

  • 32
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
C 和 C++ 语言都是世界上最流行且使用最普遍的编程语言, 因此 Eclipse 平台(Eclipse Platform)提供对 C/C++ 开发的支持一点都不足为奇。 因为 Eclipse 平台只是用于开发者工具的一个框架,它不直接支持 C/C++;它使用外部插件来提供支持。 本文将向您演示如何使用 CDT — 用于 C/C++ 开发的一组插件。CDT 项目(有关链接, 请参阅本文后面的 参考资料一节)致力于为 Eclipse 平台提供功能完全的 C/C++ 集成开发环境(Integrated Development Environment,IDE)。 虽然该项目的重点是 Linux,但它在可使用 GNU 开发者工具的所有环境(包括 Win32(Win 95/98/Me/NT/2000/XP)、QNX Neutrino 和 Solaris 平台)都能工作。 CDT 是完全用 Java 实现的开放源码项目(根据 Common Public License 特许的),它作为 Eclipse SDK 平台的一组插件。这些插件将 C/C++ 透视图添加到 Eclipse 工作台(Workbench), 现在后者可以用许多视图和向导以及高级编辑和调试支持来支持 C/C++ 开发。 由于其复杂性,CDT 被分成几个组件,它们都采用独立插件的形式。 每个组件都作为一个独立自主的项目进行运作,有它自己的一组提交者、错误类别和邮件列表。 但是,所有插件都是 CDT 正常工作所必需的。 下面是 CDT 插件/组件的完整列表: 主 CDT 插件(Primary CDT plug-in)是“框架”CDT 插件。 CDT 功能 Eclipse(CDT Feature Eclipse)是 CDT 功能组件(Feature Component)。 CDT 核心(CDT Core)提供了核心模型(Core Model)、CDOM 和核心组件(Core Component)。 CDT UI是核心 UI、视图、编辑器和向导。 CDT 启动(CDT Launch)为诸如编译器和调试器之类的外部工具提供了启动机制。 CDT 调试核心(CDT Debug Core)提供了调试功能。 CDT 调试 UI(CDT Debug UI)为 CDT 调试编辑器、视图和向导提供了用户界面。 CDT 调试 MI(CDT Debug MI)是用于与 MI 兼容的调试器的应用程序连接器。 现在,让我们研究一下如何在实际应用程序使用这些组件。图 1 显示了 Eclipse 的 C/C++ 项目: 图 1. 在带有 CDT 插件的 Eclipse 编辑 C/C++ 项目 安装和运行 CDT 在下载和安装 CDT 之前,首先必需确保 GNU C 编译器(GNU C compiler,GCC)以及所有附带的工具(make、binutil 和 GDB)都是可用的。 如果正在运行 Linux,只要通过使用适用于您分发版的软件包管理器来安装开发软件包。 在 Windows平台上,将需要安装 Cygwin 工具箱(请参阅 参考资料以获得链接)。Cygwin 是用于 Windows 的类 UNIX 环境,它包括 GCC 移植以及所有必需的开发工具,包括 automake 和 GNU 调试器(GNU Debugger,GDB)。Cygwin 是在 cygwin1.dll 库基础上构建的。Cygwin 的备用解决方案是 Minimalist GNU for Windows(MinGW)(请参阅 参考资料以获得链接)。 该工具是一组可免费获取、自由分发的特定于 Windows 的头文件和导入库,这些头文件和导入库与 GNU 工具集(它们允许您生成不依赖于任何第三方 DLL 的本机 Windows 程序)结合在一起。 如果您想要创建与 POSIX 兼容的 Windows 应用程序,那么 MinGW 是最佳选择。MinGW 甚至可以在 Cygwin 安装之上工作。 Solaris和 QNX要求您从因特网下载并安装其特定的 GCC、GNU Make binutils 和 GDB 移植(请参阅 参考资料以获得链接)。 假设您安装了适当的 Java SDK/JRE 和 Eclipse 平台 SDK,并且它们都正常运行。CDT 以两种“方式”可用:稳定的发行版和试运行版(nightly build)。 试运行版未经完全测试,但它们提供了更多的功能并改正了当前错误。 安装之前,请检查磁盘上是否存在先前版本的 CDT,如果存在,请确保完全除去它。 因为 CDT 没有可用的卸载程序,所以需要手工除去它。 为了检查先前版本是否存在,转至 CDT 插件所驻留的目录: eclipse/plugins 。 接着,除
centos7 tfs部署笔记.txt 环境信息: Docker version 1.8.2-fc22, build cb216be/1.8.2 Fedora release 22 (Twenty Two) Linux localhost.localdomain 4.0.4-301.fc22.x86_64 #1 SMP Thu May 21 13:10:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux docker centos:CentOS Linux release 7.2.1511 (Core) 参考: http://code.taobao.org/p/tfs/wiki/get/ http://my.oschina.net/beiyou/blog/76129?fromerr=bGluCWDI tfs版本:2.2.16 centos:7.2.1511 gcc:4.8.5 # docker run -i -t centos /bin/bash [root@2f60c4bcddfa /]# yum install make automake autoconf libtool gcc gcc-c++ libuuid-devel zlib-devel mysql-devel readline-devel gperftools-devel.x86_64 -y Libraries have been installed in: /usr/local/lib64//lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- /usr/bin/mkdir -p '/usr/local/lib64//include/tbnet' /usr/bin/install -c -m 644 channel.h channelpool.h connection.h controlpacket.h databuffer.h defaultpacketstreamer.h epollsocketevent.h httppacketstreamer.h httprequestpacket.h httpresponsepacket.h iocomponent.h ipacketfactory.h ipackethandler.h ipacketstreamer.h iserveradapter.h packet.h packetqueue.h packetqueuethread.h serversocket.h socketevent.h socket.h stats.h tbnet.h tcpacceptor.h tcpcomponent.h tcpconnection.h transport.h udpacceptor.h udpcomponent.h udpconnection.h connectionmanager.h '/usr/local/lib64//include/tbnet' [root@2f60c4bcddfa tfs_release-2.2.16]# ./configure --prefix=/usr/local/ configure ok make 问题 : serialization.h:575:27: error: conversion to 'char' from 'long int' may alter its value [-Werror=conversion] buff[3] = (v>>32) & 0xFF; ^ serialization.h:576:27: error: conversion to 'char' from 'long int' may alter its value [-Werror=conversion] buff[2] = (v>>40) & 0xFF; ^ serialization.h:577:27: error: conversion to 'char' from 'long int' may alter its value [-Werror=conversion] buff[1] = (v>>48) & 0xFF; ^ serialization.h:578:27: error: conversion to 'char' from 'long int' may alter its value [-Werror=conversion] 解决 [root@2f60c4bcddfa tfs_release-2.2.16]# find -name Makefile | xargs sed -i 's/-Werror//' 问题 : In file included from session_util.cpp:1:0: session_util.h:30:43: 错误:‘int32_t’不是一个类型名 static void gene_session_id(const int32_t app_id, const int64_t session_ip, std::string& session_id); ^ session_util.h:30:51: 错误:ISO C++ 不允许声明无类型的‘app_id’ [-fpermissive] static void gene_session_id(const int32_t app_id, const int64_t session_ip, std::string& session_id); ^ session_util.h:30:65: 错误:‘int64_t’不是一个类型名 static void gene_session_id(const int32_t app_id, const int64_t session_ip, std::string& session_id); ^ session_util.h:30:73: 错误:ISO C++ 不允许声明无类型的‘session_ip’ [-fpermissive] static void gene_session_id(const int32_t app_id, const int64_t session_ip, std::string& session_id); ^ session_util.h:31:68: 错误:‘int32_t’未声明 static int parse_session_id(const std::string& session_id, int32_t& app_id, int64_t& session_ip); ^ session_util.h:31:85: 错误:‘int64_t’未声明 static int parse_session_id(const std::string& session_id, int32_t& app_id, int64_t& session_ip); session_util.cpp:24:10: 错误:‘void tfs::common::SessionUtil::gene_session_id(int32_t, int64_t, std::string&)’的原型不匹配类‘tfs::common::SessionUtil’的任何一个 void SessionUtil::gene_session_id(const int32_t app_id, const int64_t session_ip, string& session_id) ^ In file included from session_util.cpp:1:0: session_util.h:30:21: 错误:备选为:static void tfs::common::SessionUtil::gene_session_id(int, int, std::string&) static void gene_session_id(const int32_t app_id, const int64_t session_ip, std::string& session_id); ^ session_util.cpp:31:9: 错误:‘int tfs::common::SessionUtil::parse_session_id(const string&, int32_t&, int64_t&)’的原型不匹配类‘tfs::common::SessionUtil’的任何一个 int SessionUtil::parse_session_id(const string& session_id, int32_t& app_id, int64_t& session_ip) ^ In file included from session_util.cpp:1:0: session_util.h:31:20: 错误:备选为:static int tfs::common::SessionUtil::parse_session_id(const string&, int&, int&) static int parse_session_id(const std::string& session_id, int32_t& app_id, int64_t& session_ip); 解决 [root@localhost tfs_release-2.2.16]# vim src/common/session_util.h 添加 #include <stdint.h> 整体代码如下 #ifndef TFS_COMMON_SESSIONUTIL_H_ #define TFS_COMMON_SESSIONUTIL_H_ #include <string> #include <stdint.h> namespace tfs { namespace common { static const char SEPARATOR_KEY = '-'; class SessionUtil { public: static std::string gene_uuid_str(); static void gene_session_id(const int32_t app_id, const int64_t session_ip, std::string& session_id); static int parse_session_id(const std::string& session_id, int32_t& app_id, int64_t& session_ip); }; } } #endif //TFS_RCSERVER_SESSIONUUID_H_ 问题: /lib64//lib/libtbsys.a -lrt -lpthread -lm -ldl -lc /usr/bin/ld: cannot find -ljemalloc collect2: error: ld returned 1 exit statu 解决 curl -O http://www.canonware.com/download/jemalloc/jemalloc-4.0.4.tar.bz2 tar -jxvf jemalloc-4.0.4.tar.bz2 cd jemalloc-4.0.4/ && ./configure && make && make install 问题: block_collect.cpp:229:17: 错误:‘abs’不是‘__gnu_cxx’的成员 if (__gnu_cxx::abs(info_.version_ - info.version_) <= VERSION_AGREED_MASK)//version agreed ^ client_request_server.cpp:167:21: error: 'abs' is not a member of '__gnu_cxx' stat[3] = __gnu_cxx::abs(out.size() - block_count); 解决:替换成cstdlib的abs 问题: meta_server_service.cpp:1584:48: error: invalid conversion from 'const char*' to 'char*' [-fpermissive] char* pos = strstr(sub_dir, parents_dir); 解决:添加编译参数-fpermissive [root@localhost tfs_release-2.2.16]# vim src/name_meta_server/Makefile CXXFLAGS = -g -D__STDC_LIMIT_MACROS -Wall -Wextra -Wunused-parameter -Wformat -Wconversion -Wdeprecated -fpermissive [root@localhost tfs_release-2.2.16]# make Making all in src make[1]: Entering directory `/usr/local/tfs_release-2.2.16/src' Making all in common make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/common' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/common' Making all in message make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/message' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/message' Making all in new_client make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/new_client' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/new_client' Making all in dataserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/dataserver' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/dataserver' Making all in nameserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/nameserver' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/nameserver' Making all in adminserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/adminserver' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/adminserver' Making all in tools make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools' Making all in util make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/util' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/util' Making all in dataserver make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/dataserver' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/dataserver' Making all in nameserver make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/nameserver' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/nameserver' Making all in adminserver make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/adminserver' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/adminserver' Making all in mock make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/mock' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/mock' Making all in transfer make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/transfer' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/transfer' Making all in cluster make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/cluster' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/cluster' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools' make[3]: Nothing to be done for `all-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools' Making all in rcserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/rcserver' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/rcserver' Making all in monitor make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/monitor' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/monitor' Making all in name_meta_server make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/name_meta_server' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/name_meta_server' Making all in rootserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/rootserver' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/rootserver' Making all in checkserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/checkserver' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/checkserver' make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src' make[2]: Nothing to be done for `all-am'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src' make[1]: Leaving directory `/usr/local/tfs_release-2.2.16/src' Making all in conf make[1]: Entering directory `/usr/local/tfs_release-2.2.16/conf' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/usr/local/tfs_release-2.2.16/conf' Making all in scripts make[1]: Entering directory `/usr/local/tfs_release-2.2.16/scripts' Making all in ha make[2]: Entering directory `/usr/local/tfs_release-2.2.16/scripts/ha' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts/ha' make[2]: Entering directory `/usr/local/tfs_release-2.2.16/scripts' make[2]: Nothing to be done for `all-am'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts' make[1]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts' Making all in sql make[1]: Entering directory `/usr/local/tfs_release-2.2.16/sql' Making all in ms make[2]: Entering directory `/usr/local/tfs_release-2.2.16/sql/ms' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/sql/ms' Making all in rcs make[2]: Entering directory `/usr/local/tfs_release-2.2.16/sql/rcs' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/sql/rcs' make[2]: Entering directory `/usr/local/tfs_release-2.2.16/sql' make[2]: Nothing to be done for `all-am'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/sql' make[1]: Leaving directory `/usr/local/tfs_release-2.2.16/sql' make[1]: Entering directory `/usr/local/tfs_release-2.2.16' make[1]: Nothing to be done for `all-am'. make[1]: Leaving directory `/usr/local/tfs_release-2.2.16' [root@localhost tfs_release-2.2.16]# make install Making install in src make[1]: Entering directory `/usr/local/tfs_release-2.2.16/src' Making install in common make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/common' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/common' make[3]: Nothing to be done for `install-exec-am'. /usr/bin/mkdir -p '/usr/local/include' /usr/bin/install -c -m 644 define.h cdefine.h lock.h func.h internal.h meta_server_define.h rts_define.h error_msg.h '/usr/local/include' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/common' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/common' Making install in message make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/message' make[2]: Nothing to be done for `install'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/message' Making install in new_client make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/new_client' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/new_client' /usr/bin/mkdir -p '/usr/local/lib' /bin/sh ../../libtool --mode=install /usr/bin/install -c libtfsclient.la libtfsclient_c.la '/usr/local/lib' libtool: install: /usr/bin/install -c .libs/libtfsclient.so.0.0.0 /usr/local/lib/libtfsclient.so.0.0.0 libtool: install: (cd /usr/local/lib && { ln -s -f libtfsclient.so.0.0.0 libtfsclient.so.0 || { rm -f libtfsclient.so.0 && ln -s libtfsclient.so.0.0.0 libtfsclient.so.0; }; }) libtool: install: (cd /usr/local/lib && { ln -s -f libtfsclient.so.0.0.0 libtfsclient.so || { rm -f libtfsclient.so && ln -s libtfsclient.so.0.0.0 libtfsclient.so; }; }) libtool: install: /usr/bin/install -c .libs/libtfsclient.lai /usr/local/lib/libtfsclient.la libtool: install: /usr/bin/install -c .libs/libtfsclient_c.so.0.0.0 /usr/local/lib/libtfsclient_c.so.0.0.0 libtool: install: (cd /usr/local/lib && { ln -s -f libtfsclient_c.so.0.0.0 libtfsclient_c.so.0 || { rm -f libtfsclient_c.so.0 && ln -s libtfsclient_c.so.0.0.0 libtfsclient_c.so.0; }; }) libtool: install: (cd /usr/local/lib && { ln -s -f libtfsclient_c.so.0.0.0 libtfsclient_c.so || { rm -f libtfsclient_c.so && ln -s libtfsclient_c.so.0.0.0 libtfsclient_c.so; }; }) libtool: install: /usr/bin/install -c .libs/libtfsclient_c.lai /usr/local/lib/libtfsclient_c.la libtool: install: /usr/bin/install -c .libs/libtfsclient.a /usr/local/lib/libtfsclient.a libtool: install: chmod 644 /usr/local/lib/libtfsclient.a libtool: install: ranlib /usr/local/lib/libtfsclient.a libtool: install: /usr/bin/install -c .libs/libtfsclient_c.a /usr/local/lib/libtfsclient_c.a libtool: install: chmod 644 /usr/local/lib/libtfsclient_c.a libtool: install: ranlib /usr/local/lib/libtfsclient_c.a libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /usr/local/lib ---------------------------------------------------------------------- Libraries have been installed in: /usr/local/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make install-exec-hook make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/new_client' tmp_dir=".tfs_tmp_dir";\ for client_lib in libtfsclient.a libtfsclient_c.a; \ do \ cd /usr/local/lib;\ test -d $tmp_dir && rm -rf $tmp_dir;\ mkdir -p $tmp_dir && mv $client_lib $tmp_dir;\ cd $tmp_dir;\ ar x $client_lib;\ rm -f $client_lib;\ for i in *.a ; do\ lib_tmp_dir=".tmp_$i";\ mkdir -p $lib_tmp_dir;\ mv $i $lib_tmp_dir;\ cd $lib_tmp_dir;\ ar x $i;\ cd ../; done;\ ar cru ../$client_lib `find . -name '*.o'`;\ ranlib ../$client_lib;\ chmod 644 ../$client_lib;\ done; \ cd .. && rm -rf $tmp_dir make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/new_client' /usr/bin/mkdir -p '/usr/local/include' /usr/bin/install -c -m 644 tfs_client_api.h tfs_client_capi.h tfs_rc_client_api.h tfs_meta_client_api.h '/usr/local/include' make install-data-hook make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/new_client' cd /usr/local/include && \ sed -i 's#common/\(.*\.h\)#\1#g' tfs_client_api.h tfs_client_capi.h tfs_rc_client_api.h tfs_meta_client_api.h && \ sed -i -n -e '/ifdef \+WITH_UNIQUE_STORE/{h;d}' -e '/endif/{x;/ifdef \+WITH_UNIQUE_STORE/d;x;p;d}' -e 'x;/ifdef \+WITH_UNIQUE_STORE/{x;d};x;p' tfs_client_api.h tfs_client_capi.h tfs_rc_client_api.h tfs_meta_client_api.h make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/new_client' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/new_client' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/new_client' Making install in dataserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/dataserver' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/dataserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../libtool --mode=install /usr/bin/install -c dataserver '/usr/local/bin' libtool: install: /usr/bin/install -c dataserver /usr/local/bin/dataserver make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/dataserver' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/dataserver' Making install in nameserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/nameserver' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/nameserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../libtool --mode=install /usr/bin/install -c nameserver '/usr/local/bin' libtool: install: /usr/bin/install -c nameserver /usr/local/bin/nameserver make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/nameserver' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/nameserver' Making install in adminserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/adminserver' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/adminserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../libtool --mode=install /usr/bin/install -c adminserver '/usr/local/bin' libtool: install: /usr/bin/install -c adminserver /usr/local/bin/adminserver make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/adminserver' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/adminserver' Making install in tools make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools' Making install in util make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/util' make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/util' make[4]: Nothing to be done for `install-exec-am'. make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/util' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/util' Making install in dataserver make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/dataserver' make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/dataserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../../libtool --mode=install /usr/bin/install -c clear_file_system ds_client format_file_system read_super_block recover_disk_data_to_cluster recover_sync_file_queue convert_name reload_config read_index_tool read_block_prefix reverse_name modify_super_block tfsping view_local_key gen_block_prefix verify_block_to_dataserver '/usr/local/bin' libtool: install: /usr/bin/install -c clear_file_system /usr/local/bin/clear_file_system libtool: install: /usr/bin/install -c ds_client /usr/local/bin/ds_client libtool: install: /usr/bin/install -c format_file_system /usr/local/bin/format_file_system libtool: install: /usr/bin/install -c read_super_block /usr/local/bin/read_super_block libtool: install: /usr/bin/install -c recover_disk_data_to_cluster /usr/local/bin/recover_disk_data_to_cluster libtool: install: /usr/bin/install -c recover_sync_file_queue /usr/local/bin/recover_sync_file_queue libtool: install: /usr/bin/install -c convert_name /usr/local/bin/convert_name libtool: install: /usr/bin/install -c reload_config /usr/local/bin/reload_config libtool: install: /usr/bin/install -c read_index_tool /usr/local/bin/read_index_tool libtool: install: /usr/bin/install -c read_block_prefix /usr/local/bin/read_block_prefix libtool: install: /usr/bin/install -c reverse_name /usr/local/bin/reverse_name libtool: install: /usr/bin/install -c modify_super_block /usr/local/bin/modify_super_block libtool: install: /usr/bin/install -c tfsping /usr/local/bin/tfsping libtool: install: /usr/bin/install -c view_local_key /usr/local/bin/view_local_key libtool: install: /usr/bin/install -c gen_block_prefix /usr/local/bin/gen_block_prefix libtool: install: /usr/bin/install -c verify_block_to_dataserver /usr/local/bin/verify_block_to_dataserver make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/dataserver' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/dataserver' Making install in nameserver make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/nameserver' make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/nameserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../../libtool --mode=install /usr/bin/install -c admintool showsyncoplog rmsyncoplog ssm tfstool performance syncbyfile read_syncoplog_header repair_block_info '/usr/local/bin' libtool: install: /usr/bin/install -c admintool /usr/local/bin/admintool libtool: install: /usr/bin/install -c showsyncoplog /usr/local/bin/showsyncoplog libtool: install: /usr/bin/install -c rmsyncoplog /usr/local/bin/rmsyncoplog libtool: install: /usr/bin/install -c ssm /usr/local/bin/ssm libtool: install: /usr/bin/install -c tfstool /usr/local/bin/tfstool libtool: install: /usr/bin/install -c performance /usr/local/bin/performance libtool: install: /usr/bin/install -c syncbyfile /usr/local/bin/syncbyfile libtool: install: /usr/bin/install -c read_syncoplog_header /usr/local/bin/read_syncoplog_header libtool: install: /usr/bin/install -c repair_block_info /usr/local/bin/repair_block_info make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/nameserver' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/nameserver' Making install in adminserver make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/adminserver' make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/adminserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../../libtool --mode=install /usr/bin/install -c adminservertool '/usr/local/bin' libtool: install: /usr/bin/install -c adminservertool /usr/local/bin/adminservertool make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/adminserver' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/adminserver' Making install in mock make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/mock' make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/mock' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../../libtool --mode=install /usr/bin/install -c mock_data_server '/usr/local/bin' libtool: install: /usr/bin/install -c mock_data_server /usr/local/bin/mock_data_server make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/mock' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/mock' Making install in transfer make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/transfer' make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/transfer' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../../libtool --mode=install /usr/bin/install -c transfer_block split_block_tool compare_crc compare_same_cluster transfer_same_cluster_block compare_same_cluster_ext remove_block verify_file_same_cluster transfer_ge_dirs transfer_logo_tool '/usr/local/bin' libtool: install: /usr/bin/install -c transfer_block /usr/local/bin/transfer_block libtool: install: /usr/bin/install -c split_block_tool /usr/local/bin/split_block_tool libtool: install: /usr/bin/install -c compare_crc /usr/local/bin/compare_crc libtool: install: /usr/bin/install -c compare_same_cluster /usr/local/bin/compare_same_cluster libtool: install: /usr/bin/install -c transfer_same_cluster_block /usr/local/bin/transfer_same_cluster_block libtool: install: /usr/bin/install -c compare_same_cluster_ext /usr/local/bin/compare_same_cluster_ext libtool: install: /usr/bin/install -c remove_block /usr/local/bin/remove_block libtool: install: /usr/bin/install -c verify_file_same_cluster /usr/local/bin/verify_file_same_cluster libtool: install: /usr/bin/install -c transfer_ge_dirs /usr/local/bin/transfer_ge_dirs libtool: install: /usr/bin/install -c transfer_logo_tool /usr/local/bin/transfer_logo_tool make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/transfer' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/transfer' Making install in cluster make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/cluster' make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools/cluster' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../../libtool --mode=install /usr/bin/install -c sync_by_blk sync_by_log sync_by_file transfer_by_file sync_analyze_tool '/usr/local/bin' libtool: install: /usr/bin/install -c sync_by_blk /usr/local/bin/sync_by_blk libtool: install: /usr/bin/install -c sync_by_log /usr/local/bin/sync_by_log libtool: install: /usr/bin/install -c sync_by_file /usr/local/bin/sync_by_file libtool: install: /usr/bin/install -c transfer_by_file /usr/local/bin/transfer_by_file libtool: install: /usr/bin/install -c sync_analyze_tool /usr/local/bin/sync_analyze_tool make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/cluster' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools/cluster' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools' make[4]: Entering directory `/usr/local/tfs_release-2.2.16/src/tools' make[4]: Nothing to be done for `install-exec-am'. make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/tools' Making install in rcserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/rcserver' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/rcserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../libtool --mode=install /usr/bin/install -c rcserver '/usr/local/bin' libtool: install: /usr/bin/install -c rcserver /usr/local/bin/rcserver make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/rcserver' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/rcserver' Making install in monitor make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/monitor' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/monitor' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../libtool --mode=install /usr/bin/install -c ha_monitor ns_ping '/usr/local/bin' libtool: install: /usr/bin/install -c ha_monitor /usr/local/bin/ha_monitor libtool: install: /usr/bin/install -c ns_ping /usr/local/bin/ns_ping make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/monitor' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/monitor' Making install in name_meta_server make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/name_meta_server' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/name_meta_server' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../libtool --mode=install /usr/bin/install -c metaserver '/usr/local/bin' libtool: install: /usr/bin/install -c metaserver /usr/local/bin/metaserver make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/name_meta_server' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/name_meta_server' Making install in rootserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/rootserver' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/rootserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../libtool --mode=install /usr/bin/install -c rootserver '/usr/local/bin' libtool: install: /usr/bin/install -c rootserver /usr/local/bin/rootserver make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/rootserver' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/rootserver' Making install in checkserver make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src/checkserver' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src/checkserver' /usr/bin/mkdir -p '/usr/local/bin' /bin/sh ../../libtool --mode=install /usr/bin/install -c checkserver '/usr/local/bin' libtool: install: /usr/bin/install -c checkserver /usr/local/bin/checkserver make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src/checkserver' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src/checkserver' make[2]: Entering directory `/usr/local/tfs_release-2.2.16/src' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/src' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/src' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/src' make[1]: Leaving directory `/usr/local/tfs_release-2.2.16/src' Making install in conf make[1]: Entering directory `/usr/local/tfs_release-2.2.16/conf' make[2]: Entering directory `/usr/local/tfs_release-2.2.16/conf' make[2]: Nothing to be done for `install-exec-am'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/conf' make[1]: Leaving directory `/usr/local/tfs_release-2.2.16/conf' Making install in scripts make[1]: Entering directory `/usr/local/tfs_release-2.2.16/scripts' Making install in ha make[2]: Entering directory `/usr/local/tfs_release-2.2.16/scripts/ha' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/scripts/ha' make[3]: Nothing to be done for `install-exec-am'. /usr/bin/mkdir -p '/usr/local/scripts/ha' /usr/bin/install -c -m 644 authkeys.sh deploy.sh ha.cf NameServer RootServer rsdep.sh nsdep.sh ns.xml rs.xml '/usr/local/scripts/ha' make install-data-hook make[4]: Entering directory `/usr/local/tfs_release-2.2.16/scripts/ha' mv //usr/local/scripts/ha/authkeys.sh //usr/local/scripts/ha/authkeys mv //usr/local/scripts/ha/deploy.sh //usr/local/scripts/ha/deploy mv //usr/local/scripts/ha/nsdep.sh //usr/local/scripts/ha/nsdep mv //usr/local/scripts/ha/rsdep.sh //usr/local/scripts/ha/rsdep chmod u+x //usr/local/scripts/ha/authkeys chmod u+x //usr/local/scripts/ha/deploy chmod u+x //usr/local/scripts/ha/nsdep chmod u+x //usr/local/scripts/ha/rsdep chmod u+x //usr/local/scripts/ha/NameServer chmod u+x //usr/local/scripts/ha/RootServer make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts/ha' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts/ha' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts/ha' make[2]: Entering directory `/usr/local/tfs_release-2.2.16/scripts' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/scripts' make[3]: Nothing to be done for `install-exec-am'. /usr/bin/mkdir -p '/usr/local/scripts' /usr/bin/install -c -m 644 stfs.sh tfs.sh start_sync_log.sh sync.sh cs_sync.sh '/usr/local/scripts' make install-data-hook make[4]: Entering directory `/usr/local/tfs_release-2.2.16/scripts' mv //usr/local/scripts/stfs.sh //usr/local/scripts/stfs mv //usr/local/scripts/tfs.sh //usr/local/scripts/tfs mv //usr/local/scripts/sync.sh //usr/local/scripts/sync mv //usr/local/scripts/start_sync_log.sh //usr/local/scripts/start_sync_log mv //usr/local/scripts/cs_sync.sh //usr/local/scripts/cs_sync chmod u+x //usr/local/scripts/stfs chmod u+x //usr/local/scripts/tfs chmod u+x //usr/local/scripts/sync chmod u+x //usr/local/scripts/start_sync_log chmod u+x //usr/local/scripts/cs_sync sed -i 's#\(TFS_HOME=\).*$#\1/usr/local#g' //usr/local/scripts/stfs //usr/local/scripts/tfs make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts' make[1]: Leaving directory `/usr/local/tfs_release-2.2.16/scripts' Making install in sql make[1]: Entering directory `/usr/local/tfs_release-2.2.16/sql' Making install in ms make[2]: Entering directory `/usr/local/tfs_release-2.2.16/sql/ms' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/sql/ms' make[3]: Nothing to be done for `install-exec-am'. /usr/bin/mkdir -p '/usr/local/sql/ms' /usr/bin/install -c -m 644 create_dir.sql create_file.sql create_table.sql mv_dir.sql mv_file.sql pwrite_file.sql rm_dir.sql rm_file.sql seq_simulator.sql '/usr/local/sql/ms' make install-data-hook make[4]: Entering directory `/usr/local/tfs_release-2.2.16/sql/ms' make[4]: Nothing to be done for `install-data-hook'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/sql/ms' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/sql/ms' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/sql/ms' Making install in rcs make[2]: Entering directory `/usr/local/tfs_release-2.2.16/sql/rcs' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/sql/rcs' make[3]: Nothing to be done for `install-exec-am'. /usr/bin/mkdir -p '/usr/local/sql/rcs' /usr/bin/install -c -m 644 create_table.sql '/usr/local/sql/rcs' make install-data-hook make[4]: Entering directory `/usr/local/tfs_release-2.2.16/sql/rcs' make[4]: Nothing to be done for `install-data-hook'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/sql/rcs' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/sql/rcs' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/sql/rcs' make[2]: Entering directory `/usr/local/tfs_release-2.2.16/sql' make[3]: Entering directory `/usr/local/tfs_release-2.2.16/sql' make[3]: Nothing to be done for `install-exec-am'. make install-data-hook make[4]: Entering directory `/usr/local/tfs_release-2.2.16/sql' make[4]: Nothing to be done for `install-data-hook'. make[4]: Leaving directory `/usr/local/tfs_release-2.2.16/sql' make[3]: Leaving directory `/usr/local/tfs_release-2.2.16/sql' make[2]: Leaving directory `/usr/local/tfs_release-2.2.16/sql' make[1]: Leaving directory `/usr/local/tfs_release-2.2.16/sql' make[1]: Entering directory `/usr/local/tfs_release-2.2.16' make[2]: Entering directory `/usr/local/tfs_release-2.2.16' make[2]: Nothing to be done for `install-exec-am'. make[2]: Leaving directory `/usr/local/tfs_release-2.2.16' make[1]: Leaving directory `/usr/local/tfs_release-2.2.16'

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值