WordPress数据库错误: [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

WordPress数据库错误: [Got error 28 from storage engine]
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category', 'post_tag', 'post_format') AND tr.object_id IN (252) ORDER BY t.name ASC

Linux下C和C++开发基础 – Crazy knowledge base
Crazy knowledge base

Linux下C和C++开发基础

n 编程语言:C 、C++

n 编译(compile):源文件(.c)->目标文件(.o)

n 连接(link):目标文件(.o)->可执行文件

n 库(library):静态连接库(.a)、动态连接库(.so)

Linux下开发工具

n编辑器:vi、emacs、窗口编辑器

n编译器:GCC

n调试器:GDB

n可执行文件工具:Binutils

n连接器:ld

n汇编程序:as

n库管理工具:ar

n可执行文件符号管理:nm

n显示可执行文件信息:objdump

简单程序示例(C语言):

n hello.c

/***************************

C代码

#i nclude <stdio.h>

int main(int argc,char **argv)

{

printf(“HelloWorld!/n”);

return 0;

}

/***************************

n编译方法:gcc –o hello hello.c

n运行方法:./hello

简单程序示例(C++语言):

n hello.cpp

/*******************************

C代码

#i nclude <iostream>

using namespace std;

int main(int argc,char **argv)

{

cout << “Hello World!“ << endl;

return 0;

}

/*******************************

n 编译方法:g++ –o hello hello.cpp

n 运行方法:./hello

GCC编译器

n GNU平台下主流编译器

n目前最新稳定版4.0

n官方网站:http://gcc.gnu.org

n支持编译语言:C、C++、Objective-C、

Objective-C++、Java、Fortran、Ada

n跨平台支持:支持几乎所有主流操作系统,如

Linux、UNIX、Windows等。支持多种硬件平

台,如X86、ARM、PPC、MIPS等

n交叉编译功能

编译相关文件路径

n头文件

n一般在/usr/include目录下

n库文件

n一般在/lib、/usr/lib目录下

n某些库在其他目录下,如X Window相关库一般在

/usr/X11R6/lib目录下

n编译器、连接器核心文件

n一般在/usr/lib/gcc-lib/<target>/<version>目录下

Linux下函数库

n静态库(.a)和动态库(.so)

n库命名:lib开头,库版本号

n库链接

n标准库:

n动态加载库:ld-linux.so(/lib)

n标准C库:libc.so(/lib)

n标准C++库:libstdc++.so(/usr/lib)

n数学库:libm.so(/lib)

GCC使用用法

n基本用法:

n gcc [options] file…

n示例:gcc –o hello hello.c,编译hello.c为可执行文件

hello(自动连接标准C库libc.so)

n示例:gcc –o hello hello.c –lm,编译hello.c为可执行

文件hello,连接数学库libm

n示例:g++ -o hello hello.cpp,编译hello.cpp为可执行

文件hello,自动连接标准C++库libstdc++.so

GCC常用选项

-v :显示gcc版本信息及其相关信息

n示例:gcc -v

n可用于查看gcc核心文件信息及其编译配置选项

n -o:生成可执行文件名

n示例:gcc -o hello hello.c

n -c:仅编译成中间目标文件(.o),不连接

n示例:gcc -c hello.c,将生成hello.o

n -S:由源程序生成汇编文件(.s)

n示例:gcc -S hello.c,将生成hello.s

-E:对源程序仅进行预处理,输出到标准输出上(可

用于分析预处理如define的问题)

n 示例:gcc -E hello.c> hellop.c

n -I:指定头文件所在路径

n 示例:gcc -Iinclude -o hello hello.c

n -L:指定库文件所在路径

n 示例:gcc –o hello hello.c -Llib -ltest

n -l:指定连接的库文件

n 示例:同上

n -D:定义宏

n 示例:gcc -D DEBUG=3 -o hello hello.c

-On:代码优化选项,以产生更小和更快的目标代码,

n表示优化级别,如-O1,-O2,-O3等

n 示例:gcc -O2 -o hello hello.c

n -m<arch>:针对特定处理器的优化,如-m386,-m586等

n 示例:gcc -m586 -o hello hello.c

n -g:产生调试代码,用于gdb调试工具

n 示例:gcc -g -o hello hello.c

n -pg:产生用于性能测试的附加信息,供gprof程序使用

n 示例:gcc -pg -o hello hello.c

n -Wall:显示所有警告信息

n 示例:gcc -Wall -o hello hello.c

GNU调试工具gdb

n基本功能:

n设置断点,暂停程序执行

n监视运行状态下变量值

n单步执行代码

n汇编、反汇编

n调试信息

n源程序编译时加上-g选项,保证目标程序内含调试

信息,方便gdb调试时显示代码行、变量名等。

GDB调试示例程序test.c

C代码

#i nclude <stdio.h>

int main()

{

int i,j;

j=0;

for(i=0;i<10;i++)

{

j+=2;

printf(“j=%d/n”,j);

}

}

GDB调试命令

n 编译:gcc -g -o test test.c

n 运行gdb:gdb test

n gdb命令:

n help:可查看gdb命令帮助

n gdb命令可采用缩写,如list可缩写为l

n 列出源文件:list

n 设置断点:break

n 示例:break 6,在第6行设置断点

n 示例:break <filename>:<linenum>,在特定源文件的特定行设置断点

n 示例:break <>,在函数上设置断点

n 示例:break *<address>,在特定地址上设置断点

n 运行:run,在断点处程序暂停

GDB调试命令

n 打印变量值:print,printf

n 示例:print i,打印变量i的值

n 示例:print i=10,将变量i赋值为10

n 示例:printf “0x%x/n”,j+20,按格式打印变量值

n 设置表达式观察点:awatch、watch

n 功能:awatch当变量被读写时暂停程序运行,watch当变量发生改变时暂停程序运行

n 示例:awatch j,当j发生改变时暂停运行,显示原值和新值;j被读时显示当前值

n 继续运行:continue

n查看当前断点:info break

n清除断点:clear

n示例:clear 6,清除第6行设置的断点

n删除断点:delete

n示例:delete 2,删除编号为2的断点

n屏蔽断点:disable

n示例:disable 2,暂时使编号为2的断点失效

n激活断点:enable

n示例:enable 2,重新激活编号为2的断点

n条件断点:

n示例:break 8 if j==8,每执行到第8行检测j的值,如果j=8则程序暂停

n其他断点命令:

n ignore:忽略断点特定次数

n tbreak:设置临时断点,仅执行一次

n单步运行:step,跟踪到函数内部

n单步运行:next,不跟踪到函数内部

n显示表达式值:display,每运行到断点均显示值

n显示display的表达式:info display

n删除display的表达式:delete display <编号>

n设置变量值:set variable

n示例:set variable i=8

n打印当前堆栈信息:backtrace

n设置运行时参数:set args

n源程序编译时-l选项可自动连接相应动态库

n查看目标文件使用的动态库ldd

n示例:ldd hello

n动态库路径

n默认/lib,/usr/lib

n由/etc/ld.so.conf指定

n ldconfig程序根据/etc/ld.so.conf重建动态库cache

n ld-linux.so动态库负责完成动态链接

n环境变量LD_LIBRARY_PATH

n全称:executable and linkable format

n目标文件:可重定位文件(relocatable,.o),可执行文件,静态库,动态库等

n ELF文件组成

n文件头ELF header

n程序段,典型的段.text(代码段)、.bss(未初始化的数据段)、.data(初始化的数据段)

n重定位和位置无关代码(PIC)

二进制文件工具binutils

n 用于查看和操作二进制文件

n 包含工具:

n 连接器:ld

n 汇编器:as

n 转换地址到源程序行:addr2line

n 建立、修改函数库:ar

n 列出目标文件的符号表:nm

n 目标文件转换和拷贝:objcopy

n 显示目标文件信息:objdump

n 删除目标文件中的符号表:strip

n 显示elf文件信息:readelf

二进制文件工具使用示例

n查看目标文件基本信息

n示例:readelf –h hello

n查看目标文件中的符号

n示例:nm hello

n查看目标文件中的段信息

n示例:objdump –h hello

n反汇编目标文件

n示例:objdump –d hello

n删除目标文件中的符号,减小文件大小

n示例:strip hello

n显示可执行文件中的常量串

n示例:strings hello

编程帮助

n man:用于查看标准命令、系统调用和函数库等的用法

n示例:man sleep(查看标准命令sleep)

n示例:man 3 sleep(查看函数sleep的用法)

n Info:查看命令用法,类似Web页面

n示例:info gcc,查看gcc用法

n示例:info libc,查看标准C函数

引自:http://blog.csdn.net/linking530/article/details/6315215

Linux下C和C++开发基础

WordPress数据库错误: [Got error 28 from storage engine]
SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category') AND tr.object_id IN (251) ORDER BY t.name ASC

WordPress数据库错误: [Got error 28 from storage engine]
SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category') AND tr.object_id IN (253) ORDER BY t.name ASC

滚动到顶部