半冷半暖秋天

2009-10-27

[网易新闻]纽约街头恶搞一族溜“隐形狗”(组图)

Filed under: 不知所云 — sunu @ 19:29:04

http://news.163.com/09/1027/09/5MKF9JIS0001125G_3.html

报道没啥意思,只是又一次地发现,网易网友真是太有才了!
tai_you_cai

2009-10-24

CMake基础用法记录

Filed under: 文档及资源 — sunu @ 18:33:12

非常棒的教程:

CMake系统教程-1
CMake系统教程-2
CMake系统教程-3
CMake系统教程-4
CMake系统教程-5

下面是一些用法示例,仅供参考。
[code lang="c" line="0"]
PROJECT(test_project)
SET(NAME test)
SET(VERSION 0.0.1)
SET(SRC_DIR ../src)
FILE(GLOB HeaderFiles "${SRC_DIR}/*.h")
FILE(GLOB SourceFiles "${SRC_DIR}/*.c")

MESSAGE(STATUS "你好,这里是CMAKE打印的消息.")

#是否显示编译过程
#连接出错时比较有用
#SET(CMAKE_VERBOSE_MAKEFILE ON)

SET(ExtLibPath ../mylibs 其它类库所在目录)
#!!!非常重要, LINK_DIRECTORIES必须要加在TARGET前面!!!
LINK_DIRECTORIES(dir1 dir2 头文件所在目录)
INCLUDE_DIRECTORIES()
ADD_EXECUTABLE(${NAME} ${SourceFiles})

#加上-lmylib,这个需要加在target后面。
#静态
TARGET_LINK_LIBRARIES(${NAME} libmylibs.a)
#动态
#TARGET_LINK_LIBRARIES(${NAME} libmylibs.so)

#额外的宏定义
ADD_DEFINITIONS("-Wall");
#专门为某一个文件所加
#SET_SOURCE_FILES_PROPERTIES(src.cpp COMPILE_FLAGS -DHELLO)

#编译动态或者静态库示例
#==开始==================================================
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
SET (ModSrc hello.cpp)

#在build下执行make hello编译hello.so, make hello_static编译 hello.a
ADD_LIBRARY(hello SHARED ${ModSrc})
ADD_LIBRARY(hello_static STATIC ${ModSrc})
set_target_properties(hello_static PROPERTIES OUTPUT_NAME "hello")
SET_TARGET_PROPERTIES(hello PROPERTIES CLEAN_DIRECT_OUTPUT 1)
SET_TARGET_PROPERTIES(hello_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)

#可自动生成不同版本的软连接
#SET_TARGET_PROPERTIES(hello PROPERTIES VERSION 1.1 SOVERSION 1)
#效果类似于:
# libhello.so -> libhello.so.1
# libhello.so.1 -> libhello.so.1.1
# libhello.so.1.1

#安装
#即make install时执行
INSTALL(TARGETS hello hello_static
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
INSTALL(FILES someheaders.h DESTINATION include)
#此处使用相对路径,前缀由cmake时引入
# 比如cmake -DCMAKE_INSTALL_PREFIX=/opt/ "/some dir with CMakeLists.txt/"
# make install后libhello.a,libhello.so被扔入/opt/lib/下

#卸载
ADD_CUSTOM_TARGET(uninstall COMMAND "rm" -rf "哪些文件需要详细写明")
#==结束==================================================
[/code]

2009-10-22

“You don’t exist, go away!”

Filed under: 不知所云 — sunu @ 23:10:21

root[ustore]#chroot fsroot
I have no name![/]#ssh root@10.22.65.138
You don’t exist, go away!
I have no name![/]#

2009-10-21

中国农业银行紧急通知

Filed under: 不知所云 — sunu @ 17:52:33

接到这么条短信:

中国农业银行紧急通知贵户在本月20日在深圳天虹商场交易9788元系统自动在您帐上扣除详情请咨询:0755-81130492

nnd,我的农行卡上什么时候有这么多钱了,我记得好像是个位数啊。。。
这个事情说明,穷光蛋对此类短信有天生的免疫能力!

2009-10-20

liblogger

Filed under: C/C++ — sunu @ 21:20:48

一款为C/C++开发的日志工具,支持输出到文件、网络以及控制台,支持Linux、Windows。

liblogger_0.1.zip 内附近编译好的静态链接库,有vc6/vc9/gcc版,不好混用。

基本使用:
[code lang="c" line="0"]
控制是否使用liblogger
如果定义了DISABLE_ALL_LOGS则LogTrace之类都变为空,不记录或者显示任何调试信息。
#define DISABLE_ALL_LOGS

头文件
若VC,先将liblogger头文件所在目录加入Project->Setting->C/C++->PreProcessor-> Additional include directories
#include #include #include

链接库
上面提供的压缩包中提供了不同编译选项的liblogger.lib文件。

InitLogger初始化时参数不同,可将记录下的字符串分别打印到屏幕、文件或者网络服务器。

1. 写入文件时使用
----------------------------------------
tFileLoggerInitParams fileInitParams;
memset(&fileInitParams,0,sizeof(tFileLoggerInitParams));
fileInitParams.fileName = "helloworld.log";
InitLogger(LogToFile, &fileInitParams);
-------------------------------------------

2. 发送到服务器(服务器在liblogger的发行包中有,是Python脚本实现的。)
-----------------------------------------
tSockLoggerInitParams sockInitParams;
memset(&sockInitParams,0,sizeof(tSockLoggerInitParams));
sockInitParams.server = "127.0.0.1";
sockInitParams.port = 50007;
InitLogger(LogToSocket,&sockInitParams);
------------------------------------------------

3. 发送到终端
------------------------------------------------
InitLogger(LogToConsole, stdout);
或者
InitLogger(LogToConsole, stderr);
------------------------------------------------

调试变量时,比如:
LogTrace("Trace log %s %f", "Test", 1.066f);
还有其它的如LogDebug,LogInfo, LogFatal之类,不过只有LogTrace支持变参。

退出程序时一律使用:
DeInitLogger();

[/code]

Powered by WordPress