lib文件

PHP _ session 详解

左心房为你撑大大i 提交于 2020-03-01 09:18:16
http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议。所谓无状态,指的是不会维护http请求数据,http请求是独立的,非持久的。而越来越复杂的WEB应用,需要保存一些用户状态信息。这时候,Session这种方案应需而生。PHP从4.1开始支持Session管理。 session是很抽象的一个概念。我们不妨先从与它几个息息相关的有迹可寻的小切入点入手,然后逐渐地认识了解它。 session存储 首先,我们为什么需要Session,就是因为我们需要存储各个用户的状态数据。那么试问,如果由你来设计解决这个需求的方案,那么也许你会设置这样一个数据表用与存储各个用户的状态信息: uid created data max_age 94c55770fdf044a7 1270802787 jtUsername=admin 14400 2c37df64277e4409 1270822787 jtUsername=Joe;jtBooks=8; 14400 … … … … uid : 用户唯一标识符,区分其它用户 created : 记录产生时间 data : 存放与用户相关的数据 max_age : 记录的有效时间 同样地,PHP设计管理session方案也大致如此,它分别包含了以下信息: 1. session id 用户session唯一标识符,随机生成的一串字符串

gcc生成静态库和动态库

依然范特西╮ 提交于 2020-03-01 08:03:34
gcc生成静态库和动态库 一、库文件简介 简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代 码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。 静态库文件的扩展名是.a,共享库文件的扩展名是.so (在CYGWIN环境下,分别叫做.o和.dll)。共享库现在常常被叫做 动态库,是由于很多人借用了MS Windows的DLL(Dynamic Linked Library)这个词。 (1)静态库 静态是指每个用到该库的应用程序都拥有一份自己的库拷贝;应用程序运行的时候,即使将库删除也没有问题,因为应用程序自己已经有了自己的拷贝。 (2) 共享库 一个共享库有可能被多个所有应用程序共享。因此,对每个应用程序来说,即使不再使用某个共享库,也不应将其删除。此外,应用程序需要正确的环境变量设置 (LD_LIBRARY_PATH),从而找到共享库所在的位置,否则,应用程序运行时会报告找不到这个库。 二、关于使用库的问题 如果库是已经编译好的,那么如何在开发、运行应用程序时使用呢?头文件和库文件所在的路径,必须通过适当的方式通知给编译器、链接器和相关的应用程序。 对于静态库来说,主要涉及开发工具,如gcc。例如,用gcc编译、链接时,需要通过适当的路径找到头文件和静态库文件;

LD_LIBRARY_PATH 环境变量

半城伤御伤魂 提交于 2020-03-01 07:00:28
Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。(该路径在默认路径之前查找)   移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。   当执行函数动态链接.so时,如果此文件不在缺省目录下‘/usr/local/lib’ and ‘/usr/lib’.   那么就需要指定环境变量 LD_LIBRARY_PATH   假如现在需要在已有的环境变量上添加新的路径名,则采用如下方式:   LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的路径串) Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。 但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢? 目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。 传统上,Linux 的先辈 Unix

linux下源码编译curl报错.

六月ゝ 毕业季﹏ 提交于 2020-03-01 06:12:51
说明: 由于现网的php不带curl功能, 需要编译生成一个libcurl.so给php生成curl.so模块用. 并且需要支持 openssl . 编译的过程并不顺利, 这里做下记录备忘. 使用如下configure命令生成配置文件. ssl是提前编译好的 openssl . ./configure --prefix=/home/nemo/progs/curl --with-ssl=/home/nemo/progs/ssl 问题1编译报错: Making all in src make[1]: Entering directory `/data/home/nemo/libs/curl-7.27.0/src' make all-am make[2]: Entering directory `/data/home/nemo/libs/curl-7.27.0/src' /bin/sh ../libtool --tag=CC --mode=link gcc -g0 -O2 -Wno-system-headers -L/home/nemo/progs/ssl/lib -o curl hugehelp.o tool_binmode.o tool_bname.o tool_cb_dbg.o tool_cb_hdr.o tool_cb_prg.o tool_cb_rea.o tool_cb

OpenGL版本与OpenGL扩展机制

雨燕双飞 提交于 2020-03-01 03:13:27
1 opengl 的版本区别(在 opengl 官方文档中有详细说明) 针对Opengl不同版本的升级是主要是扩展指令集。 现在版本是4.0啦 1.1 opengl1.1 1995年,SGI推出了更为完善的OpenGL 1.1版本。OpenGL 1.1的性能比1.0版提高甚多。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。 1.2 opengl1.3 2001年8月,ARB发布OpenGL 1.3规范,它增加了立方纹理贴图、纹理环境、多重采样、纹理框架压缩等扩展指令,但是改进程度非常有限。 1.3 opengl1.4 2002年7月,ARB正式发布OpenGL 1.4,它也只加入了深度纹理/阴影纹理、顶点设计框架、自动纹理贴图等简单的功能。 1.3 opengl1.5 2003年的7月,ARB公布OpenGL 1.5规范。OpenGL 1.5内包含ARB制定的“正式扩展规格绘制语言”(OpenGL Shading Language v1.0),该语言用于着色对象、顶点着色、片断着色等扩展功能,同时也将作为下一代OpenGL 2.0版本的内核。OpenGL 1.5的变化还增加了顶点缓冲对象(可提高透视性能)、非乘方纹理(可提高纹理内存的使用效率

配置OpenGL时遇到的一些问题

痴心易碎 提交于 2020-03-01 03:10:38
今天在配置openGL时遇到了一些问题,在各种"玩弄“后终于配置好了。(汗) 电脑为windows10(X64),原本是装好vs2015的,所以只需要下载一些头文件。OpenGL 下有一些重用的辅助库,比如glut,glew等等,在windows平台下需要自己安装,因为微软为了推广自己的DX,在windows下只支持openGL 1.1版本。 现在openGL已经发展到3.0了,因此我们需要自己下载配置这些库,在这里我们来安装glut, glee, glew这三个库,以及一些OpenGL扩展支持。 glut : 提供对窗口的封装,这是跨平台窗口的,我们就不必自己去编写烦琐的窗口代码。 glee : 方便用来判断当前系统是不是支持某项OpenGL特性,我们就不用自己去写烦琐的先取函数地址然后再判断的代码了。 glew : 因为windows默认只支持OpenGL 1.1,你要想用更高版本的OpenGL,你就需要安装它,它能自动识别你的平台所支持的全部OpenGL高级扩展函数。 首先给出官方的一个链接: https://www.opengl.org/wiki/Getting_Started 奈何官方只给出电脑配置显卡驱动的下载地址。那三个库还得自己丰衣足食。 1.glut GLUT3.7下载地址: http://www.opengl.org/resources/libraries

Eclipse : Web Deployment Assembly & Maven depende

泪湿孤枕 提交于 2020-03-01 02:33:23
标准web工程在eclipse中利用m2eclipse插件添加依赖管理后,在部署过程中没有将依赖的jar包自动拷贝到/WEB-INF/lib中。 参考了一些朋友的做法手动执行 [java] view plain copy mvn dependency:copy-dependencies -DoutputDirectory=src/main/webapp/WEB-INF/lib -DincludeScope=runtime 命令将jar包拷贝到/WEB-INF/lib目录下。 这种做法固然可以,但是也会带来一些不便。 1、需要手动执行命令。 2、不能时时更新。 以下列出网上查找到的解决方法,m2eclipse plugin方式已验证通过。 通过验证eclipse版本:eclipse-jee-helios-SR2-win32 m2eclipse插件地址:http://m2eclipse.sonatype.org/sites/m2e 标准web工程通过m2eclipse添加依赖管理步骤: 1、“Maven ” –> “Enable dependency Management“ 2、Web Deployment Assembly中添加maven dependencies 步骤如下图: 工程 -> 右键 -> preferences .classpath文件中会有修改 [xhtml]

Mac OS X Lion 10.7.4上安装GTK+心得,兼谈如何解决fink的“could not determine XFree86 version number”错误。

一笑奈何 提交于 2020-03-01 02:02:43
作者: zyl910 。 折腾了好几天,终于在Mac OS X Lion 10.7.4上装好GTK+了。其中走了不少弯路,于是将经验教训总结了一下。 一、系统环境(OS X与XCode)   操作系统:Mac OS X Lion 10.7.4(11E53)   编程工具:Xcode 4.4.1(1448),并装好了它的“Command Line Tools”。   安装过程可参考这些帖子—— 在virtualbox上安装Mac OS X Lion 之 配置过程 http://www.crifan.com/install_mac_os_x_lion_on_virtualbox_config_process/ 给VirtualBox上的Mac Lion安装Xcode http://www.crifan.com/install_xcode_for_mac_on_virtualbox/ Mac OS X Lion下找不到GCC http://blog.csdn.net/qinjienj/article/details/7456193 二、尝试GTK+官网方法   对于mac系统,官网上主要是以下这几个页面—— Download for Mac OS X http://www.gtk.org/download/macos.php Building GTK-OSX https://live

Android文件系统编译出错记录

笑着哭i 提交于 2020-03-01 01:28:39
错误1: 注意:external/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java 使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 注意:external/protobuf/java/src/main/java/com/google/protobuf/micro/CodedInputStreamMicro.java 使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 Generated: (out/target/product/generic/android-info.txt) host C: acp <= build/tools/acp/acp.c host C++: libhost <= build/libs/host/pseudolocalize.cpp host C: libhost <= build/libs/host/CopyFile.c <命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用] <built-in>:0:0: 附注: 这是先前定义的位置 <命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义

Mac OS X上用CoreCLR运行一个真正的.NET控制台程序

余生长醉 提交于 2020-03-01 01:21:10
这个真正的控制台程序来自 corefxlab ,名叫CoreClrHelloWorld,是一个跨平台的.NET控制台演示程序,可以显示微软、Linux、苹果的logo。 CoreClrHelloWorld代码如下(代码中省略了拼接logo的字符串,完整代码见 这里 ): using System; internal class Program { private static void Main(string[] args) { if (args.Length == 1 && args[0] == "linux") { DrawLinux(); } else if (args.Length == 1 && args[0] == "mac") { DrawMac(); } else { DrawWindows(); } Console.WriteLine(); Console.WriteLine("Press ENTER to exit ..."); Console.ReadLine(); } private static void DrawWindows() { Console.WriteLine("Hello, Windows..."); const int squareSize = 20; var colors = new[] { ConsoleColor.Red,