当前位置:  技术问答>linux和unix

交叉编译arm-linux-gcc -l参数和-L参数为什么按网友教程还是找不到.h

    来源: 互联网  发布时间:2017-05-25

    本文导语:  我把sqlite3.h放在.c同目录然后去掉-l才能生成,为什么没法用-l定位.h?? 网上引用.h时用的尖括号,我换成“”并且同目录能编译,不知为何 以下是网上资料: 应用程序的交叉编译: arm-softfloat-linux-gnu-gcc name.c -o ...

我把sqlite3.h放在.c同目录然后去掉-l才能生成,为什么没法用-l定位.h??
网上引用.h时用的尖括号,我换成“”并且同目录能编译,不知为何

以下是网上资料:

应用程序的交叉编译:
arm-softfloat-linux-gnu-gcc name.c -o db.out -lsqlite* -L/home/hzc/new/lib -I/home/hzc/new/include
默认的情况下,是执行动态编译,编译生成的文件比静态编译小得多,因为我们是在开发板上运行,之前已经拷贝了库文件到根文件系统里,所以这里我们采用默认的动态编译方式就行了,-lsqlite* 是指定库名,-L/home/hzc/new/lib 是指定库的搜索目录,new也就是我们刚才SQLite的安装目录,-I/home/hzc/new/include 是指定头文件的搜索目录,我们在name.c文件中头文件包含形式为 #include,还可以把头文件拷到但前name.c同目录下或者包涵时把路径也写上,这样编译时就可以不需要 –I选项了。如果没做好前面这些工作编译是通不过的,会出错误:sqlite*.h:没有这个文件或目录,提示没有找到库文件等问题。


root@ubuntu:~/sqlite3-arm# arm-linux-gcc test.c -o test -L/home/sec/sqlite3-arm/lib -lsqlite3
test.c:3:21: error: sqlite3.h: No such file or directory
test.c: In function 'main':
test.c:23: error: 'sqlite3' undeclared (first use in this function)
test.c:23: error: (Each undeclared identifier is reported only once
test.c:23: error: for each function it appears in.)
test.c:23: error: 'db' undeclared (first use in this function)
test.c:33: warning: incompatible implicit declaration of built-in function 'exit'
test.c:45: warning: incompatible implicit declaration of built-in function 'exit'
test.c:51: error: 'SQLITE_OK' undeclared (first use in this function)

|
Is this the first time you ever compiled using gcc?

root@ubuntu:~/sqlite3-arm# arm-linux-gcc test.c -o test -L/home/sec/sqlite3-arm/lib -lsqlite3

Where is the -I/.... option on the command line?

As for the include directive:

In the C standard, section 6.10.2, paragraphs 2 to 4 state:

A preprocessing directive of the form

#include  new-line
searches a sequence of implementation-defined places for a header identified uniquely by the specified sequence between the  delimiters, and causes the replacement of that directive by the entire contents of the header. How the places are specified or the header identified is implementation-defined.

A preprocessing directive of the form

#include "q-char-sequence" new-line
causes the replacement of that directive by the entire contents of the source file identified by the specified sequence between the " delimiters. The named source file is searched for in an implementation-defined manner. If this search is not supported, or if the search fails, the directive is reprocessed as if it read

#include  new-line
with the identical contained sequence (including > characters, if any) from the original directive.

|
arm-linux-gcc test.c -o test -I/home/sec/sqlite3-arm/include -L/home/sec/sqlite3-arm/lib -lsqlite3

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在cygwin编译驱动程序要不要交叉编译?
  • 关于arm交叉编译器4.3.3编译程序报错,但是3.4.5却能编译通过的问题
  • 交叉编译问题
  • linux下交叉编译的问题
  • ARM Cortex A15终结交叉编译?!
  • 请教:嵌入式Linux交叉编译工具----版本选择的问题
  • 谁知道如何在i386平台使用交叉编译工具为mips平台编译libtiff啊?
  • openssl怎么交叉编译?
  • LINUX下使用Eclipse,如何使用交叉编译器?
  • 交叉编译器可以通用吗?
  • 怎么查看arm平台上的程序是用那个版本的交叉编译器编译的????
  • 怎么建立arm交叉编译环境和ramdisk镜像?
  • 如何将LINUX下的命令nohup交叉编译?
  • 小弟遇到个交叉编译的问题,谁能帮忙解决下啊
  • 怎样交叉编译2.6内核下的驱动?
  • Linux下交叉编译静态库得问题
  • Qt creator能否交叉编译?
  • 别人编译好的交叉编译的工具链,我在自己系统中怎么使用 急
  • 用MINIGUI写的程序,怎么进行交叉编译呀?
  • 交叉编译 crt0.o
  • ubuntu 10.10环境下的交叉编译求助
  • 交叉编译系统调用模块错误
  • 有关scratchbox 交叉编译器的问题。。。
  • linux下交叉编译windows VC 程序的问题
  • linux 安装交叉编译器时出现错误
  • arm交叉编译求救
  • arm-linux的交叉编译环境
  • 交叉编译,动态链接库运行出错!请高人指点
  • 请教“交叉编译”的问题
  • 关于交叉编译apache
  • 为什么要增加交叉编译器的路径?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3