易截截图软件、单文件、免安装、纯绿色、仅160KB

从windows移植到linux碰到的问题

环境: LINUX 企业版5.0
        boost_1.40, zlib_1.53, lua_1.5
 
工具:  codelite
 
如何编译boost, zlib, lua:
编译boost:
1. 进入boost_1_40_0文件夹
2. ./bootstrap.sh
3.  ./bjam install
就这3步就装好boost了
 
编译lua:
make
make generic
make install
 
编译zlib:
./configure
make
make install
设置工程要引用的libs,include 
环境达好了就是改代码了
 
1.在windows下面经常引用文件如 #include "xxx\ ttt.h",这个在linux下是不行的
要改成#include "xxx/ ttt.h",
 
2.strcpy在linux下面最好用strncpy替代, sscanf_s直接用sscanf替代好了
 
3.如果用到了hashmap,那就有点恶心了
我是单起了一个文件处理:
#ifndef _UTILIY_HASHMAP_H_
#define _UTILIY_HASHMAP_H_
#ifdef __WINDOWS
#include <hash_map>
#define hashmap stdext::hash_map
#else
#include <ext/hash_map>
#include <string>
#include "utility_fixstring.h"
struct lua_State;
namespace __gnu_cxx
{
template<> struct hash<std::string>
{
size_t operator()(const std::string & x) const
{
return hash<const char*>()(x.c_str());
}
};

template<unsigned int sz> struct hash<qin::fix_string<sz> >
{
size_t operator()(const qin::fix_string<sz> & x) const
{
return hash<const char*>()(x.c_str());
}
};

template<> struct hash<lua_State*>
{
size_t operator()(const lua_State* const& key) const
{
return ((size_t)(void*)(unsigned long)key) >> 4;
}
};
}
using namespace __gnu_cxx;
#define hashmap __gnu_cxx::hash_map
#endif
#endif
TMD,在linux下面你自己定义的结构体类型做key的时候,都要重写hash函数的,结构体指针就要转换成整型值判断
对编译库文件,生成文件名字前要加lib,比如设置库输出路径的时候lib$ProjectName.a 
如何引用库:
先设置要要引用的路径,然后把对应库的.0文件从/usr/local/lib考到/usr/lib下
未完,先吃饭


相关文档:

Linux 的多线程编程的高效开发经验

2009 年 4 月 23 日
本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。
背景
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微 ......

Linux忘记密码怎么办?

1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键
2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键
3. 修改你现在见到的命令行,加入single,结果如下:
kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/
4 ......

LINUX c++线程池框架

版权声明:原文地址及作者不详,如有侵权,请联系;
本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现, ......

linux shell种类

Linux中的shell有多种类型,其中最常用的几种是Bourne   shell(sh)、C   shell(csh)和Korn   shell(ksh)。三种shell各有优缺点。Bourne   shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne   shell在shell编程方面相当优秀,但在处理与用户的交互 ......

Linux下的多线程编程


Linux下的多线程编程
作者:姚继锋 2001-08-11 09:05:00
来自:http://www.china-pub.com
1 引言
  线程(thread)技术早
在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个
进程(process)中只允许有一个线程,这样多线程 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号