从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下
未完,先吃饭
相关文档:
2009 年 4 月 23 日
本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。
背景
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微 ......
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中的shell有多种类型,其中最常用的几种是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。三种shell各有优缺点。Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互 ......
Linux下的多线程编程
作者:姚继锋 2001-08-11 09:05:00
来自:http://www.china-pub.com
1 引言
线程(thread)技术早
在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个
进程(process)中只允许有一个线程,这样多线程 ......