1
nm to view the symbols in the static library
nm -A lib*.a
2 gcc
优化选项 (OPTIMIZATION OPTION)
这些选项 控制 多种 优化措施:
-O
-O1优化. 对于 大函数, 优化编译 占用 稍微多 的 时间 和 相当大 的 内存.
不使用 `-O' 选项 时, 编译器 的 目标 是 减少 编译 的 开销, 使 编译结果 能够 调试. 语句 是 独立的: 如果 在 两条语句 之间 用 断点 中止 程序, 你 可以 对 任何 变量 重新 赋值, 或者 在 函数体 内 把 程序计数器 指到 其他语句, 以及 从 源程序 中 精确地 获取 你 期待 的 结果.
不使用 `-O' 选项 时, 只有 声明了 register 的 变量 才 分配使用 寄存器. 编译结果 比 不用 `-O' 选项 的 PCC 要 略逊一筹.
使用了 `-O' 选项, 编译器 会试图 减少 目标码 的 大小 和 执行时间.
如果 指定了 `-O' 选项, `-fthread-jumps' 和 `-fdefer-pop' 选项 将被 打开. 在 有 delay slot 的 机器 上, `-fdelayed-branch' 选项 将被 打开. 在 即使 没有 帧指针 (frame pointer) 也支持 调试 的 机器 上, `-fomit-frame-pointer' 选项 将被 打开. 某些机器 上 还可能会 打开 其他选项.
-O2多优化一些. 除了 涉及 空间 和 速度 交换 的 优化选项, 执行 几乎 所有的 优化工作. 例如 不进行 循环展开 (loop unrolling) 和 函数内嵌 (inlining). 和 -O 选项 比较, 这个选项 既增加了 编译时间, 也提高了 生成代码 的 运行效果.
-O3优化的更多. 除了 打开 -O2 所做的 一切, 它 还 打开 了 -finline-functions 选项.
-O0不优化.
如果 指定了 多个 -O 选项, 不管 带不带 数字, 最后一个 选项 才是 生效 的 选项.
3
4 jabberd
After installation of the package ejabberd is started. However a
ejabberdctl command fails.
As I noticed epmd is running but beam is not
To make ejabberdctl work I needed to "killall empd"
and /etc/init.d/ejabberd start
Then one epmd and one beam process was up and ejabberdctl works fine
sudo ejabberdctl status