‘壹’ linux 编译compat-wireless-3.1-rc1-1时的问题
简单的步骤在ubuntu(hardy)里安装google-gadgets:
1. wget
2. tar zxvf google-gadgets-for-linux-0.9.1.tar.gz
3. cd google-gadgets-for-linux-0.9.1/
4. sudo apt-get install zlib1g-dev libmozjs-dev libcurl4-openssl-dev libxml2-dev libdbus-1-dev libmozjs-dev libgstreamer-plugins-base0.10-dev libcurl3-openssl-dev libdbus-1-dev libxul-dev libcurl3 libcurl3-dbg libcurl3-gnutls libcurl4-openssl-dev libcurl-ocaml libmozjs0d libmozjs0d-dbg libmozjs-dev g++-4.2-multilib g++ libqt4-dev
5. sudo ldconfig
6. ../../configure --enable-debug
7. sudo make install
(或者不用sudo,而是设置另一个安装目录,不同于默认的/usr/local)
1. export LD_LIBRARY_PATH=/usr/local/lib
2. ggl-gtk
‘贰’ 用的hi-tech C编译器对pic的C程序编译,其中for循环变量未定义为volatile型,可是for语句还是正常执行
编译器不一样优化结果不一样很正常啊,你要得到跟他一样的结果你也在linux系统中用gcc编译器测试一下咯
‘叁’ PIC单片机16系列的使用什么编译器
使用MAPLAB,microchip公司出的开发软件包。
‘肆’ PIC编程软件
Microchip官网:http://www.microchip.com/
Microchip IDE下载页面:http://www.microchip.com/pagehandler/en-us/family/mplabx/
在这个下载页面根据你的操作系统选择对应的IDE(开发环境),然后再下载对应的编译器(compiler),比如你用的是8位的单片机就下载XC8,16位的就下载XC16,32位的就下载XC32。
先装开发环境,三个编译器可以全部都装上,都支持C语言。
‘伍’ 关于PIC单片机编译出错的问题
Error [314] E:\lock 2014-9-9\wensuo\sorice\NJ66XDL.c; 141.1 ";" expected
双击这一行,跳到出错处,错误原因已经告诉你了,少了一个“;”号。
Error [192] E:\lock 2014-9-9\wensuo\sorice\NJ66XDL.c; 149.42 undefined identifier "BackData2"
再双击这一行,错误原因也告诉你了,BackData2这个变量之前没有定义,要在前面定义了编译器才认识它是什么。
Warning [345] E:\lock 2014-9-9\wensuo\sorice\NJ66XDL.c; 143.1 unreachable code
这个警告是告诉你这些代码编译器分析下来是永远也执行不到的代码。
Warning [357] E:\lock 2014-9-9\wensuo\sorice\NJ66XDL.c; 149.51 illegal conversion of integer to pointer
这个警告是告诉你把一个整形数转换成指针是非法的,看看编译器的使用说明。
‘陆’ PIC编译器中的PCW属于哪种编译器,PICC 还是CCS
CCS好像是固定的函数比较多,而且在程序开始是变量和PIC芯片地址多要一一定义。
PICC好像没有这方面要求。我一直用PICC。
‘柒’ 请问我有一个.so文件,如何在Linux下编程使用呢
-lxx
xx是你的.so文件名
其实使用方法和你使用数学库函数是一样的,源代码中添加
#include <math.h>,编译的时候,加上-lm参数。
注:linux下的.so文件为共享库,相当于windows下的dll文件。
linux下编写调用so文件实例
.so是Linux(Unix)下的动态链接库. 和.dll类似.
比如:
文件有: a.c, b.c, c.c
gcc -c a.c
gcc -c b.c
gcc -c c.c
gcc -shared libXXX.so a.o b.o c.o
要使用的话也很简单. 比如编译d.c, 使用到libXXX.so中的函数, libXXX.so地址是MYPATH
gcc d.c -o d -LMYPATH -lXXX
注意不是-llibXXX
test.c文件和一个test.h,这两个文件要生成libsotest.so文件。然后我还有一个testso.c文件,在这个文件里面调用libsotest.so中的函数。
编写的过程中,首先是编译so文件,我没有编写makefile文件,而是参考的2里面说的直接写的gcc命令。
因为so文件里面没有main函数,所以是不可执行的,所以编译的时候要加上-c,只生成目标文件。
‘捌’ 请教一个关于pic18编译器的问题,很痛苦
使用MPLAB IDE v8.9编译c18 选用单片机为pic18f2525
分别采用如上三种编译器 均无法编译 要么无法找到头文件(picc18),要么陷入死循环(mcc)、或者配置字未定义(xc8)
#include<timers.h>
#include<plib.h>
#include<xc.h>
/*Set configuration bits
* -set HS oscillator
* -disable watchdog timer
* -disable low_voltage programming
* -disable brownout reset
* -enable master clear
*/
#pragma config OSC=HS
#pragma config WDT=OFF
#pragma config LVP=OFF
#pragma config BOR=OFF
#pragma config MCLRE=ON
void MyHighInt(void)
void MyLowInt(void)
#pragma interrupt MyHighInt
#pragma code high_vector=0x08
void high_vector(void)
{
_asm GOTO MyHighInt_endasm
}
#pragma interruptlow MyLowInt
#pragma code low_vector=0x18
void low_vector(void)
{
_asm GOTO MyLowInt_endasm
}
‘玖’ PIC的编译器CCS与PICC的语言有什么不同的地方,两者可以相互移植吗
对于标准的ANSC C语言部分没什么问题,如用C语言的数据类型写的简单算法之类,可以互相移植。
对于单片机编译而言,
PICC的C语言按ANSI C来定义,并进行了C语言的扩展。PICC和ANSI C有一个根本的区别就是,PICC不支持函数的递归调用。
CCS也是C语言,但也不是标准的ANSI C语言,它的头文件定义与ANSI C语言不同,所以它的程序和PICC不能混着编译,两者之间也不能混着移值。针对CCS编写的程序只能用CCS的编译器编译,用PICC编译只能报错,反之亦然。