首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

xmake从入门到精通9:交叉编译详解

- lib - libxxx.a - include - xxx.h 每个工具链都有对应include/lib目录,用于放置一些系统和头文件,例如libc...自动探测编译 如果我们交叉编译工具链是上文结构,xmake会自动检测识别这个sdk结构,提取里面的cross,以及include/lib路径位置,用户通常不需要做额外参数设置,只需要配置好sdk...设置头文件搜索目录 如果sdk里面还有额外其他include/lib目录不在标准结构中,导致交叉编译找不到和头文件,那么我们可以通过--includedirs--linkdirs来追加搜索路径...,然后通过--links添加额外链接。...xxx/lib --links=pthread 注:如果要指定多个搜索目录,可以通过:或者;来分割,也就是不同主机平台路径分隔符,linux/macos下用:,win下用;。

1.7K30

gcc用法以及静态动态链接

-I:指定include包含文件搜索目录 -o:输出成指定文件名,如果缺省则输出位a.out -L:搜索路径 -l:指定程序要链接 -w:忽略所有警告 -shared:指定生成动态链接...放在/lib/usr/lib/usr/local/lib直接用-l参数就能链接了,但如果文件没放在这三个目录里,而是放在其他目录里,这时我们只用-l参数的话,链接还是会出错,出错信息大概是:...gcc默认会在程序当前目录、/lib、/usr/lib/usr/local/lib下找对应 -I参数 -include-I参数 在你是用#include '***.h'时候,gcc/g+...而用""号包含头文件会首先搜索当前工作目录,之后搜索路径才是包含头文件所搜索路径一样路径。...Linux下标准头文件路径为/usr/include/usr/local/include ? 2.png ?

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

【ProtoBuf】2.环境配置

/autogen.sh # 第⼆步执⾏configure,有两种执⾏⽅式,任选其⼀即可,如下: # 1、protobuf默认安装在 /usr/local ⽬录,lib、bin都是分散 ....如果选择了第⼆种执⾏⽅式,即修改了安装⽬录,那么还需要在/etc/profile中添加⼀些内容: sudo vim /etc/profile # 添加内容如下: #(动态搜索路径) 程序加载运⾏期间查找动态链接时指定除了系统默认路径之外其他路径...export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/ #(静态搜索路径) 程序编译期间查找动态链接时指定查找共享路径...export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/ #执⾏程序搜索路径 export PATH=$PATH:/usr/local/protobuf.../bin/ #c程序头⽂件搜索路径 export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/ #c++程序头⽂件搜索路径 export

35230

Linux下安装并使用protobuf

/configure make make check make install 我本机上cenos 64位环境,这里全都是选择默认路径安装 user/local/bin user/local/lib..., user/local/include 都是系统默认路径之一,到这已经都安装好,但是在gcc 编译还是会找不到protobuf.so文件,原因因为在usr/local/lib,下protobuf.so...不能被gcc找到 俩种解决方案,主要就是环境变量设置问题 export LD_LIBRARY_PATH=/usr/local/lib 添加这句就可以通过了gcc编译,不过只是临时起效,重启后不在生效...在/etc/ld.so.conf 文件里面添加路径 /usr/local/lib ,因为linux系统运行库会读取这里目录寻找so,之后记得ldconfig一下噢 在给出搜寻资料解答如下...LD_LIBRARY_PATH 这个环境变量是大家最为熟悉,它告诉loader:在哪些目录中可以找到共享。可以设置多个搜索目录,这些目录之间用冒号分隔开。

3.8K20

不联网,ubuntu下安装gcc

其它设置 GCC 3.4.0所有文件,包括命令文件(如gcc、g++)、文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、文件在lib下、头文件在include下等。...由于命令文件文件所在目录还没有包含在相应搜索路径内,所以必须要作适当设置之后编译器才能顺利地找到并使用它们。...其它设置 GCC 3.4.0所有文件,包括命令文件(如gcc、g++)、文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、文件在lib下、头文件在include下等。...由于命令文件文件所在目录还没有包含在相应搜索路径内,所以必须要作适当设置之后编译器才能顺利地找到并使用它们。...由于命令文件文件所在目录还没有包含在相应搜索路径内,所以必须要作适当设置之后编译器才能顺利地找到并使用它们。

1.3K20

cmake 添加头文件目录,链接动态、静态

cmake 添加头文件目录,链接动态、静态 cmake 添加头文件目录,链接动态、静态 1. 添加头文件目录INCLUDE_DIRECTORIES 2....添加需要链接文件目录LINK_DIRECTORIES 3. 查找所在目录FIND_LIBRARY 4. 添加需要链接文件路径LINK_LIBRARIES 5....env目录,而不是常见/usr/、/usr/local目录,使用cmake进行编译时需要注意头文件文件目录设置。...它相当于g++选项中-I参数作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量作用。 include_directories(../../.....(“/home/server/third/lib/libcommon.a”) # 下面的例子,只有名,cmake会自动去所包含目录搜索link_libraries(iconv)# 传入变量link_libraries

23.4K11

linux命令行安装gcc_linux用yum安装gcc

其它设置 GCC 4.1.2所有文件,包括命令文件(如gcc、g++)、文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、文件在 lib下、头文件在include下等。...由于命令文件文件所在目录还没有包含在相应搜索路径内,所以必须要作适当设置之后编译器才能顺利地找到并使用它们。...首先,查看原来gcc所在路径: % which gcc 在我系统,上述命令显示:/usr/bin/gcc。因此,原来gcc命令在/usr/bin目录下。...1) 7.2 路径设置 将${destdir}/lib路径添加到环境变量LD_LIBRARY_PATH中,例如,如果GCC 4.1.2安装在/usr/local/gcc-4.1.2目录下,在RH Linux...下可以直接在命令行执行 % export LD_LIBRARY_PATH=/usr/local/gcc-4.1.2/lib 最好添加到系统配置文件中,这样就不必要每次都设置这个环境变量了,在文件$HOME

25.8K30

Google C++编程风格指南(一)之头文件相关规范

I指定项目相对于编译器工作目录相对路径或者绝对路径。...即上面在使用g++编译时候使用-Isrc来指明相对于编译器工作目录搜索目录。 还有一个需知就是:使用include包含头文件,使用相对路径时,相对目录是编译器工作目录。...③再搜索g++环境变量CPLUS_INCLUDE_PATH(gcc使用是C_INCLUDE_PATH) ④最后搜索g++内定目录 /usr/include /usr/local/include...(2)include系统头文件或标准头文件,如#include ①先搜索-I指定目录 ②然后搜索g++环境变量CPLUS_INCLUDE_PATH ③最后搜索...g++内定目录 /usr/include /usr/local/include /usr/lib/gcc/x86_64-redhat-linux/4.1.1/include 与上面的相同,各目录存在相同文件时

2.7K10

CMake搭建编译环境总结

编译警告 CMake编译警告报错设置 常用警告 配置交叉编译环境常需要修改 设置默认和头文件搜索路径 设置交叉编译工具链 设置浮点运算处理方式 常见场景 编译动态 编译静态 编译可执行文件...设置依赖路径 ## 括号为依赖绝对路径 link_directories(${OUTPUT_PATH}/lib) 包含头文件路径 ## 括号为包含头文件绝对路径 include_directories...当存在被设置但是未被使用参数发出警告,需配合-Wall -Wsign-compare 当比较有符号无符号值时发出警告 配置交叉编译环境常需要修改 设置默认和头文件搜索路径 编译默认会从/usr.../include目录搜索头文件、从/usr/lib搜索依赖。...当设置了CMAKE_SYSROOT后,则会从xxx/usr/include搜索头文件、从xxx/usr/lib搜索依赖

2.3K20

如何使用C++通过thrift访问HBase进行操作

下载thrift安装包 为了生成依赖类 /usr/local/include/thrift/ /usr/local/lib/ ,需要下载 thrift 源码包。...检查相关文件是否存在 thrift编译成功后,会在 /usr/local/include/thrift/ /usr/local/lib/ 目录下生成相关文件,用于后面使用 g++ 工具编译 cpp...-I/usr/local/include/thrift与-I./gen-cpp:g++会先在当前目录查找你所制定头文件,如果没有找到,会回到缺省头文件目录查找。...-L/usr/local/lib:编译时候,指定搜索路径。 -g:指示编译器,在编译时,产生调试信息。 5. 创建HBase表 在运行客户端之前,我们需要创建一个 hbase_test 表。...将export LD_LIBRARY_PATH=/usr/local/lib添加至/etc/profile文件中,如下图所示: ?

3.1K41

【一站式解惑】Linux中.a、.so.o文件以及-I,-L,LIBRARY_PATH,LD_LIBRARY_PATH等

(2)位置: 共享函数文件必须放在特定目录对于开放源码来说,GNU标准建议所有的函数文件都放在/usr/local/lib目录下,而且建议命令、可执行程序都放在/usr/local/bin目录下。...,当静态动态同名时,gcc命令将优先使用动态默认去链接/usr/lib/lib目录动态,将文件libmyhello.so复制到目录/usr/lib中即可。...配置文件/etc/ld.so.conf中指定动态搜索路径 4. 默认动态搜索路径/lib 5....默认动态搜索路径/usr/lib 有关环境变量 1.PATH是可执行文件路径,是三个中我们最常接触到,因为我们命令行中每句能运行命令,如ls、top、ps等,都是系统通过PATH找到了这个命令执行文件所在位置...修改/etc/ld.so.conf文件,把所在路径加到文件末尾(直接写在文件末尾,不要在路径前加include),并执行ldconfig刷新(ldconfig 命令用途,主要是在默认搜寻目录(/

4.2K52
领券