#include <iostream>#include <string>using namespace std; struct Print { template<typename T> Print(T t){ cout<<(t+=10); } }; struct S { S(int a){ cout << a << endl; }; }; void foo(double a) { S w(int(a)); // function declaration // S x(int()); // function declaration S y((int(a))); // object declaration S yy((int)a); // object declaration S z = int(a); // object declaration } template <class T> struct X {}; template <int N> struct Y {}; X<int()> a; // type-id X<int(1)> b; // expression (ill-formed) Y<int()> c; // type-id (ill-formed) Y<int(1)> d; // expression void foo(signed char a) { sizeof(int()); // type-id (ill-formed) sizeof(int(a)); // expression sizeof(int(unsigned(a))); // type-id (ill-formed) (int())+1; // type-id (ill-formed) (int(a))+1; // expression (int(unsigned(a)))+1; // type-id (ill-formed) } int main() { // 这句为什么是一句函数声明而不是变量创建? double a = 3....
GCC 源码网址 https://ftp.gnu.org/gnu/gcc/
源码安装参考这里
添加相应的源
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
如果提示 add-apt-repository: command not found,需要安装 sudo apt-get install software-properties-common
更新软件源
sudo apt-get update
安装指定版本的 gcc
sudo apt-get install gcc-9
查看 gcc
find / -name "gcc*"
dpkg -l | grep gcc
指定默认使用的 gcc 版本
通过 update-alternatives 建立文件关联,如果安装了同一个软件的不同版本,可以使用 update-alternatives 命令设置默认使用哪个
首先要让系统知道我们安装了多个版本的 gcc
# 命令最后的 20 和 50 是优先级,如果使用 auto 选择模式,系统将默认使用优先级高的 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 20 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50 查看 gcc 版本...
查看包名
adb shell pm list package adb shell pm list package | findstr xxx 查看包的信息
adb shell pm dump com.xxx.xxx.xxx | findstr version adb shell dumpsys package com.xxx.xxx.xxx | findstr version 查看包的路径
adb shell pm path com.xxx.xxx.xxx
获取系统应用
adb shell pm list packages -s
获取第三方应用
adb shell pm list packages -3
启动指定 activity
adb shell am start -n com....
卸载原有版本的 curl
apt-get --purge remove curl
下载所需版本的 curl
wget https://curl.se/download/curl-7.47.1.tar.gz
解压并编译
tar -zxvf curl-7.47.1.tar.gz cd curl-7.47.1 ./configure shared make make install 编译好的可执行文件在 /usr/local/bin 目录下
编译好的动态库和静态库在 /usr/local/lib 目录下
创建可执行文件和动态链接库的软连接
参考:
curl download archive ubuntu卸载安装curl Linux下更新curl版本
重命名原有的 openssl 可执行文件
mv -f /usr/bin/openssl /usr/bin/openssl.old
下载所需版本的 openssl
wget http://www.openssl.org/source/openssl-1.0.0s.tar.gz
解压并编译
tar zxvf openssl-1.0.0s.tar.gz cd openssl-1.0.0s ./config shared --prefix=/usr/local/openssl1.0 make && make install 生成的可执行文件在 /usr/local/openssl1.0/bin 目录下
生成的动态链接库在 /usr/local/openssl1.0/lib 目录下
在 /usr/bin 目录下创建可执行文件的软连接
在 /usr/lib/x86_64-linux-gnu/ 目录下创建动态链接库的软连接
参考:
OpenSSL Old Releases Linux openssl 升级、降级 openssl动态库生成以及交叉编译