Linux下配置和使用ACE笔记
1. 下载 ACE 5.7.
从 http://download.dre.vanderbilt.edu/ 下载 ACE+TAO+CIAO-5.7.tar.gz包。
2. 解压
将压缩包copy到linux目录/data/ACE里,然后解压, tar -zxvf ACE+TAO+CIAO-5.7.tar.gz。
解压后的目录是 /data/ACE_wrappers.
3. 配置config.h和platform_macros.GNU。
官方文档上是这么写的:
Create a configuration file, $ACE_ROOT/ace/config.h, that includes the appropriate platform/compiler-specific header configurations from the ACE source directory. For example:
#include "ace/config-linux.h"
Create a build configuration file, $ACE_ROOT/include/makeinclude/platform_macros.GNU, that contains the appropriate platform/compiler-specific Makefile configurations, e.g.,
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
在实际操作中也可以直接创建一个软链接:
cd $ACE_ROOT/ace
ln -s config-linux.h config.h
cd $(ACE_ROOT)/include/makeinclude/
ln -s platform_linux.GNU platform_macros.GNU
3. configure
cd ACE_wrappers/
mkdir build
../configure
等几分钟后configure完成。
4. make
在ACE_wrappers/build目录下, 执行$make
make完以后,在/data/ACE/ACE_wrappers/build/ace/.libs/目录下,能找到libACE.so和libACE-5.7.so.
make特别慢,尤其是ACE+TAO+CIAO在一起的这个包,make要好几个小时。如果TAO和CIAO用不着的话,只下载ACE的就可以了,可以省点时间。
5. install
在ACE_wrappers/build下执行#make install
make install之后,会在/usr/local/include下找到好几个ace相关的文件夹,里面有include需要的头文件。
在/usr/local/lib下找到一堆ACE相关的.so文件,包括libACE.so等等。
linux下系统查找include文件的顺序是(这段是网上摘抄的):
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386
相关文档:
1.2现代的APIC
APIC虽号称现代,但也出现10几年了,PC机市场总是很晚才能接触到新的技术,前面说了,我的T42用的还是PIC呢。APIC相较于PIC来说,最大的优点是能适用于MP平台,当然,管脚多是它另一个优点。APIC由两部分组成,一个称为LAPIC(Local APIC,本地高级中断控制器),一个称为IOAPIC(I/O APCI,I/O高级中断控制 ......
1.2.2 LAPIC
收到来自IOAPIC的中断消息后,LAPIC会将该中断交由CPU处理。和IOAPIC比较,LAPIC具有更多的寄存器以及更复杂的机制。但对于处理来自IOAPIC的中断消息,最重要的寄存器还是IRR、ISR以及EOI。
图1-4显示了x86平台上,IRR和ISR的格式:
图1-4 IRR、ISR构成
与PIC中的IRR、ISR不同的是,LAPIC的ISR、 ......
嵌入式Linux启动分为两个部分,系统引导与Linux启动。系统引导将完成Linux装入内存前,初始化CPU和相关I/O设备,并将Linux调入内存的工作。系统引导主要由BootLoader实现。在BootLoader将Linux内核调入内存之后,将权力交给LinuxKernel,进入Linux的启动部分。以下详细分析启动的过程与使用的文件。
一、系统引导与BootLoa ......
在Linux下使用Gtk+实现最简单的GUI窗口,源代码如下:
//SimpleGui.c
#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
//定义一个widget(Gtk+构件),这里定义的是一个窗口构件
GtkWidget *wnd;
//Gtk+2.0的初始化命令行参数,每一个Gtk+程序都要有这句话
gtk_init(& ......
Linux 进程间通信学习
1.Linux 间进程通信的分类
1. 管道通信(pipe)和命 ......