GVKun编程网logo

ubuntu 10 下编译 resin 3.1.10(ubuntu 编译软件)

6

在这篇文章中,我们将带领您了解ubuntu10下编译resin3.1.10的全貌,包括ubuntu编译软件的相关情况。同时,我们还将为您介绍有关CentOS6.3下编译64位hadoop2.7.1、c

在这篇文章中,我们将带领您了解ubuntu 10 下编译 resin 3.1.10的全貌,包括ubuntu 编译软件的相关情况。同时,我们还将为您介绍有关CentOS 6.3 下编译 64 位 hadoop2.7.1、cygwin3 下编译 redis6.2、FFmpeg学习—ubuntu 下编译 Android ffmpeg、install nginx on ubuntu install ubuntu usb install ubuntu 14.04 ubuntu install jd的知识,以帮助您更好地理解这个主题。

本文目录一览:

ubuntu 10 下编译 resin 3.1.10(ubuntu 编译软件)

ubuntu 10 下编译 resin 3.1.10(ubuntu 编译软件)

1、为什么要编译resin

 

编译resin后可以启用JNI库,从而提高性能。什么是JNI,JNI是(Java Native Interface),Java本地或原生接口,使用此接口,可以使用操作系统本地的库以提高性能

 

2、限制

只能在类Unix系统编译,Windows上是不行的

 

3、条件

JDK6好象是要安装的,不赘述。

更新编译的包

sudo apt-get update;

sudo apt-get install build-essential;

sudo apt-get install automake;

sudo apt-get install libtool;

下载resin-3.1.10.tar.gz

sudo tar -xvf resin-3.1.10.tar.gz /usr/local/resin

 

4、编译

cd /usr/local/resin

sudo ./configure

sudo make

sudo make install

 

OK

 


原文链接: http://blog.csdn.net/kimsoft/article/details/5813898

CentOS 6.3 下编译 64 位 hadoop2.7.1

CentOS 6.3 下编译 64 位 hadoop2.7.1

  1. yum install svn

  2. yum install autoconf automake libtool cmake

  3. yum intall ncurses-devel

  4. yum install openssl-devel

  5. yum install gcc*

  6. 安装 jdk1.7.0_80 并配置环境变量

  7. 安装 maven

        wget http://mirrors.noc.im/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

     并设置环境变量

  8. 安装 ant

下载并解压 apache-ant-1.9.6-bin.tar.gz

         mv ~/apache-ant-1.9.6 /usr/local

         添加环境变量

         ANT_HOME=/usr/local/apache-ant-1.9.6

         PATH=$PATH:$ANT_HOME/bin

         检验是否安装成功

         ant –version

   9. 安装 protobuf-2.5.0.tar.gz

           tar zxvf protobuf-2.5.0.tar.gz

           cd protobuf-2.5.0

          ./configure

          make

          make check

          make install

          ls /usr/local/bin

     10.     进入 hadoop-2.7.1-src 目录,执行命令:

            mvn clean package –Pdist,native –DskipTests –Dtar

            或者

            mvn package –Pdist,native –DskipTests –Dtar

       等待编译结果。(1 小时左右)编译成功。

           编译好的文件在./hadoop-dist/target/hadoop-2.7.1.tar.gz

cygwin3 下编译 redis6.2

cygwin3 下编译 redis6.2

cygwin 的安装参考前文: https://my.oschina.net/abensky/blog/5386053

cygwin (64 位) 3.3, redis 6.2

编译后的文件放在 https://gitee.com/aben_skys/redis-windows

cygwin 下编译 redis

cd ~

wget -O redis-6.2.6.tar.gz https://download.redis.io/releases/redis-6.2.6.tar.gz

tar -zxvf redis-6.2.6.tar.gz

cd redis-6.2.6

make

编译时出现错误:

debug.c:1753:5: error: unknown type name ‘Dl_info’
 1753 |     Dl_info info;
      |     ^~~~~~~
debug.c:1763:13: warning: implicit declaration of function ‘dladdr’; did you mean ‘s_addr’? [-Wimplicit-function-declaration]
 1763 |         if (dladdr((void*)target, &info) != 0 && info.dli_sname != NULL) {
      |             ^~~~~~
      |             s_addr
debug.c:1763:54: error: request for member ‘dli_sname’ in something not a structure or union
 1763 |         if (dladdr((void*)target, &info) != 0 && info.dli_sname != NULL) {
      |                                                      ^
debug.c:1765:63: error: request for member ‘dli_sname’ in something not a structure or union
 1765 |                 printf("Function at 0x%lx is %s\n",target,info.dli_sname);
      |                                                               ^
debug.c: In function ‘dumpCodeAroundEIP’:
debug.c:1774:5: error: unknown type name ‘Dl_info’
 1774 |     Dl_info info;
      |     ^~~~~~~
In file included from debug.c:31:
debug.c:1783:17: error: request for member ‘dli_sname’ in something not a structure or union
 1783 |             info.dli_sname, info.dli_saddr, info.dli_fname, info.dli_fbase,
      |                 ^
server.h:2744:27: note: in definition of macro ‘serverLog’
 2744 |         _serverLog(level, __VA_ARGS__);\
      |                           ^~~~~~~~~~~
debug.c:1783:33: error: request for member ‘dli_saddr’ in something not a structure or union
 1783 |             info.dli_sname, info.dli_saddr, info.dli_fname, info.dli_fbase,
      |                                 ^
server.h:2744:27: note: in definition of macro ‘serverLog’
 2744 |         _serverLog(level, __VA_ARGS__);\
      |                           ^~~~~~~~~~~
debug.c:1783:49: error: request for member ‘dli_fname’ in something not a structure or union
 1783 |             info.dli_sname, info.dli_saddr, info.dli_fname, info.dli_fbase,
      |                                                 ^
server.h:2744:27: note: in definition of macro ‘serverLog’
 2744 |         _serverLog(level, __VA_ARGS__);\
      |                           ^~~~~~~~~~~
debug.c:1783:65: error: request for member ‘dli_fbase’ in something not a structure or union
 1783 |             info.dli_sname, info.dli_saddr, info.dli_fname, info.dli_fbase,
      |                                                                 ^
server.h:2744:27: note: in definition of macro ‘serverLog’
 2744 |         _serverLog(level, __VA_ARGS__);\
      |                           ^~~~~~~~~~~
debug.c:1784:17: error: request for member ‘dli_saddr’ in something not a structure or union
 1784 |             info.dli_saddr);
      |                 ^
server.h:2744:27: note: in definition of macro ‘serverLog’
 2744 |         _serverLog(level, __VA_ARGS__);\
      |                           ^~~~~~~~~~~
debug.c:1785:44: error: request for member ‘dli_saddr’ in something not a structure or union
 1785 |         size_t len = (long)eip - (long)info.dli_saddr;
      |                                            ^
debug.c:1791:38: error: request for member ‘dli_saddr’ in something not a structure or union
 1791 |             void *base = (void *)info.dli_saddr;
      |                                      ^
make[1]: *** [Makefile:374: debug.o] Error 1
make[1]: Leaving directory ''/home/aben/redis-6.2.6/src''
make: *** [Makefile:6: all] Error 2

针对 error: unknown type name ‘Dl_info’错误,参考: https://github.com/redis/redis/issues/8694 需要修改 src/debug.cvoid dumpX86Calls 前后的内容 (三处,注意 cygwin修正注释的地方):

/*cygwin修正: 新增*/
typedef struct Dl_info{
    unsigned char *dli_sname;
    unsigned char *dli_saddr;
    unsigned char *dli_fname;
    unsigned char *dli_fbase;
}info;

/* Scans the (assumed) x86 code starting at addr, for a max of `len`
 * bytes, searching for E8 (callq) opcodes, and dumping the symbols
 * and the call offset if they appear to be valid. */
void dumpX86Calls(void *addr, size_t len) {
    size_t j;
    unsigned char *p = addr;
    /*cygwin修正: Dl_info info 前面要加 struct*/
    struct Dl_info info;
    /* Hash table to best-effort avoid printing the same symbol
     * multiple times. */
    unsigned long ht[256] = {0};

    if (len < 5) return;
    for (j = 0; j < len-4; j++) {
        if (p[j] != 0xE8) continue; /* Not an E8 CALL opcode. */
        unsigned long target = (unsigned long)addr+j+5;
        target += *((int32_t*)(p+j+1));
        if (dladdr((void*)target, &info) != 0 && info.dli_sname != NULL) {
            if (ht[target&0xff] != target) {
                printf("Function at 0x%lx is %s\n",target,info.dli_sname);
                ht[target&0xff] = target;
            }
            j += 4; /* Skip the 32 bit immediate. */
        }
    }
}

void dumpCodeAroundEIP(void *eip) {
    /*cygwin修正: Dl_info info 前面要加 struct*/
    struct Dl_info info;

看图:

测试: make test (此步可以略过)

需要安装 tcl 85.+: apt-cyg install tcl. 虽然有几个错误,但是不影响使用

启动:

src/redis-server

客户端 (新开一个 cygwin 命令行):

cd ~
cd redis-6.2.6
src/redis-cli

windows 下执行

我们把编译好的文件放到 c:\lnmp\redis 目录下

1. 从目录 redis-6.2.6 及其下 src 处复制文件

#使用cp+大括号一次性复制多个文件
cp {README.md,redis.conf,sentinel.conf,TLS.md} /cygdrive/c/lnmp/redis/
cp src/{redis-benchmark.exe,redis-check-aof.exe,redis-check-rdb.exe,redis-cli.exe,redis-sentinel.exe,redis-server.exe} /cygdrive/c/lnmp/redis/

2. 复制 cygwin 必须的 dll 文件

cp /cygdrive/c/cygwin64/bin/cygwin1.dll /cygdrive/c/lnmp/redis/

3. 启动命令

此时启动 redis-server 会显示没有找到配置文件,所以我们要在启动时指定配置文件:

#命令行的第一个参数是配置文件
redis-server.exe redis.conf

redis 的 rdb 持久化是默认开启的,但是 save 策略建议手动修改为:

save 900 1
save 300 10
save 60 10000

FFmpeg学习—ubuntu 下编译 Android ffmpeg

FFmpeg学习—ubuntu 下编译 Android ffmpeg

1.编译要求

Ubuntu 14.04 lts 64位
ffmpeg-3.1.3
android-ndk-r12b

2.编译步凑

1.下载ffmpeg 3.13 源码
https://github.com/FFmpeg/FFmpeg/releases/tag/n3.1.3
下载完后解压,我的解压目录是 /home/wh/ffmpeg-3.1.3
2.安装yasm:
  sudo apt-get install build-essential git pkg-config yasm

3.下载NDK r12b
https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
下载完后解压,我的解压目录是 /home/wh/android-ndk-r12b
4.在ffmpeg 的源码目录下面创建编译脚本 build.sh ,脚本内容如下:

NDK="/home/wh/android-ndk-r12b"
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
function build_one
{
./configure --prefix=$PREFIX \
		--enable-shared --disable-static \
		--disable-doc --disable-ffmpeg \
		--disable-ffplay --disable-ffprobe \
		--disable-ffserver --disable-avdevice \
		--disable-doc --disable-symver \
		--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
		--target-os=android --arch=arm --enable-cross-compile \
		--sysroot=$SYSROOT --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
		--extra-ldflags="$ADDI_LDFLAGS" $ADDITIONAL_CONfigURE_FLAG
make clean
make -j $(nproc)
make install
}
cpu=arm
PREFIX=$(pwd)/android/$cpu 
ADDI_CFLAGS="-marm"
build_one
注意:上面的脚本里面的NDK 路径要改为你存放的ndk 路径


5.进入ffmpeg 源代码目录里面 执行如下命令:
sudo su
会提示你输入密码,输入密码后会获得root权限
6.执行如下命令进行编译:
sudo bash build.sh
编译完成后会在源码目录下面生成一个android 的文件夹,里面就是生成的静态库,如下所示:

install nginx on ubuntu install ubuntu usb install ubuntu 14.04 ubuntu install jd

install nginx on ubuntu install ubuntu usb install ubuntu 14.04 ubuntu install jd

今天关于ubuntu 10 下编译 resin 3.1.10ubuntu 编译软件的分享就到这里,希望大家有所收获,若想了解更多关于CentOS 6.3 下编译 64 位 hadoop2.7.1、cygwin3 下编译 redis6.2、FFmpeg学习—ubuntu 下编译 Android ffmpeg、install nginx on ubuntu install ubuntu usb install ubuntu 14.04 ubuntu install jd等相关知识,可以在本站进行查询。

本文标签: