导航:首页 > 源码编译 > 如何指定编译器路径

如何指定编译器路径

发布时间:2022-07-14 16:15:13

❶ cmake 在Windows 命令行怎么指定编译

CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。
通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。
总之,CMake是一个非常强大的编译自动配置工具,支持各种平台,KDE也是用它编译的,感兴趣的可以试用一下。

准备活动:
(1)安装cmake。
下载地址:http://www.cmake.org/cmake/resources/software.html
根据自己的需要下载相应的包即可,Windows下可以下载zip压缩的绿色版本,还可以下载源代码。
Windows下CMake的使用
(2)运行cmake的方法。(GUI、命令行)
http://www.cmake.org/cmake/help/runningcmake.html

CMake使用步骤:
运行GUI的cmake界面:
cmake-2.8.1-win32-x86\bin\cmake-gui.exe
Windows下CMake的使用
执行Configure:
运行之后,生成了如下文件:
Windows下CMake的使用
生成Makefile:
执行Generate之后生成如下文件:
Windows下CMake的使用
运行make进行编译:
Windows下CMake的使用
编译完成后,在build目录生成Tutorial.exe,运行Tutorial.exe 25就可以看到运行结果:
Windows下CMake的使用
运行make install安装程序:
Windows下CMake的使用
运行make test进行测试:
Windows下CMake的使用

通过cmake tutorial学习CMake配置方法
http://www.cmake.org/cmake/help/cmake_tutorial.html
可以在源代码的Tests/Turorial目录中找到这个手册对应的代码。
Windows下CMake的使用
1、Step1。
(如果不知道如何使用cmake,以及如何使用编译产生的Turorial.exe,可先看下前面“CMake使用步骤”的说明,它以Step4为例详细介绍了使用过程,Step1的配置可能不够完全,比如无法运行make install,无法运行make test,但可以参考。)
简单的程序编译。
(1)运行GUI的cmake,指定要编译的源代码路径和二进制文件路径(会自动创建)。
Windows下CMake的使用
(2)点击Configure,配置成功后,再点击Generate。
配置需要选择合适的编译器,虽然我安装了VC2008,但没有配置成功;选择Unix Makefiles,配置成功,它自动找到了DevC++下的gcc.exe等编译器。
Windows下CMake的使用
(3)在build3目录执行make,就能够编译生成Turorial.exe了。
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>make
Linking CXX executable Tutorial.exe
[100%] Built target Tutorial
可以运行一下Turorial.exe:
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe
Tutorial.exe Version 1.0
Usage: Tutorial.exe number
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe 4
The square root of 4 is 2
2、Step2
把子目录编译为库,并且链接到最终的可执行文件。
include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions")
add_subdirectory (MathFunctions) # 使得子目录MathFunctions也能被编译

# add the executable
add_executable (Tutorial tutorial.cxx)
target_link_libraries (Tutorial MathFunctions)
产生makefile:
在GUI上点击Configure,之后Generate还是灰色,再次点击Configure,Generate就可以点击了。
编译:

linux 怎样修改编译器的库路径

最简单配置就是把连接库目录,添加到/etc/ld.so.conf中,一行一个目录就行,添加完成后,执行#ldconfig更新动态连接库。

❸ 如何为qt指定编译器arm-xilinx-linux

修改$QTDIR/mkspecs目录下的符号链接default.将其指向linux-g++
$QTDIR是路径,具体要看你把QT装到什么地方和QT本身的版本,一般是/usr/lib[64]/qt4
修改default符号链接的作用是让qmake在生成Makefile的时候将Makefile文件中的编译器变量$CC与$CXX赋值成gcc和g++

❹ 如何修改C++程序编译器的路径

不同的编译工具设置的方法不同,在VC中,你可以打开解决方案的属性选项,在执行文件路径里设置,这对整个解决方案有效,如果你是对某个源文件单独处理,你需要在这个源文件的属性选项中设置它的自定义处理项。
通常,编译器的路径在很多开发工具中是自动设置的,你改变这些设置,你需要非常熟悉你用的工具的编译过程及需要的各种处理程序。否则,会造成开发工具不能正常工作。

❺ 怎样设置编译器路径

环境变量中设置 bin,或者path路径
|
我的电脑->属性->高级->环境变量

❻ 如何在编译后,指定安装路径

1. 安装目录变量
在Makefile中,安装目录同样需要使用变量来指定,这样就可以很方便的修改文件的安装路径。安装目录的标准命名下边将一一介绍。这些变量基于标准的文件系统结构,这些变量的变种在SVR4、4.4BSD、Linux、Ultrix v4以及其它现代操作系统中都有使用。
安装者希望在调用make是改变这些值,(例如 make prefix=/usr install),或者在配置时改变这些值(例如 configure –prefix=/usr)。GNU包不会对在该系统上这些变量适合于哪些值做任何猜想,或者说GNU包不会猜测这些包应该被安装到哪里是更合适的:GNU包使用缺省的特定设置是为了以便于所有的GNU包行为一致,它允许安装者做任何自己想要的布局。
以下所罗列的两个变量是指定安装文件的根目录。所有其它安装目录都是它们的子目录。注意:文件不能直接安装在这两个目录下。
prefix
这个变量(通常作为实际文件安装目录的父目录,可以理解为其它实际文件安装目录的前缀)用于构造下列(除这两个安装根目录以外的其它目录变量)变量的缺省值。变量“prefix”缺省值是“/usr/local”。创建完整的GNU系统时,变量prefix的缺省值是空值,“/usr”是“/”的符号连接符文件。(如果使用“Autoconf”工具,它应该写成“@prefix@”)。注意:当更改了变量“prefix”以后重新执行“make install”,不会导致可执行程序(终极目标)的重建。
exec_prefix
这个前缀用于构造下列变量的缺省值。变量“exec_prefix”缺省值是“$(prefix)”(如果使用“Autoconf”工具,它应该写为“@exec_prefix@”)。通常,“$(exec_prefix)”目录中的子目录下存放和机器相关文件(例如可执行文件和例程库)。“$(prefix)”目录的子目录存放通用的一般文件。同样:改变“exec_prefix”的值之后执行“make install”,不会重建可执行程序(终极目标)。
文件(包括可执行程序、说明文档等)的安装目录:
bindir
用于安装一般用户可运行的可执行程序。通常它的值为:“/usr/local/bin”,使用时应写为:“$(exec_prefix)/bin”。(使用“Autoconf”工具时,应该为“@bindir@”)
sbindir
安装可在shell中直接调用执行的程序。这些命令仅对系统管理员有用(系统管理工具)。通常它的值为:“/usr/local/sbin”,要求在使用时应写为:“$(exec_prefix)/sbin”。(使用“Autoconf”工具时,应该为“@sbindir@”)
libexecdir
用于安装那些通常不是由用户直接使用,而是由其它程序调用的可执行程序。通常它的值为:“/usr/local/libexec”,要求在使用时应写为:“$(exec_prefix)/libexec”。(使用“Autoconf”工具时,应该为“@libexecdir@”)
程序执行时使用的数据文件可从以下两个方面来分类:
1. 是否可由程序更改。分为两类:程序可修改和不可修改的文件(虽然用户可编辑其中某些文件)。
2. 是否和体系结构相关。分为两类:体系结构无关文件,可被所有类型的机器共享;体系结构相关文件,仅可被相同类型机器、操作系统共享;其它的就是那些不能被任何两个机器共享的文件。
这样就存在六种不同的可能。除编译生成的目标文件(.o文件)和库文件以外,不推荐使用那些和特定机器体系结构相关的文件,使用和体系无关的数据文件更加简洁,而且,它的实现也并不非常困难。
在Makefile中应该使用以下变量为不同类型的文件指定对应的安装目录:
`datarootdir'
The root of the directory tree for read-only architecture-independent data files. This should normally be /usr/local/share, but write it as $(prefix)/share. (If you are using Autoconf, write it as `@datarootdir@'.) `datadir''s default value is based on this variable; so are `infodir', `mandir', and others.
Datarootdir
机器体系结构无关的只读数据文件的根目录。通常它的值为:“/usr/local/share”,使用时应写为:“$(prefix)/share”。(使用“Autoconf”工具时,应该为“@datarootdir@”)。‘datadir’的缺省值是基于这个变量的,`infodir', `mandir'等其它变量的值也是如此。
datadir
用于安装和机器体系结构无关的只读数据文件。通常它的值与’datarootdir’一样,但是我们使用两个变量是为了用户能够移动一些程序特定的文件而不修改如man 文件、info文件的路径。通常它的值为:“/usr/local/share”,使用时应写为:“$(prefix)/share”。(使用“Autoconf”工具时,应该为“@datadir@”)。“$(infodir)”和“$(includedir)”作为例外情况,参考后续对它们的详细描述。
Datadir的定义对所有包都一样,因此你应该安装你的数据在它的子目录下。大部分包安装它们的数据在如此目录下:$(datadir)/package-name/.
sysconfdir
用于安装从属于特定机器的只读数据文件,包括:主机配置文件、邮件服务、网络配置文件、“/etc/passwd”文件等。所有该目录下的文件都应该是普通文本文件(可识别的“ASCII”码文本文件)。通常它的值为:“/usr/local/etc”,在使用时应写为:“$(prefix)/etc”。(使用“Autoconf”工具时,应该为“@sysconfdir@”)。
不要将可执行文件安装在这个目录下(可执行文件的安装目录应该是“$(libexecdir)”或者“$(sbindir)”)。也不要在这个目录下安装那些需要更改的文件(系统的配置文件等)。这些文件应该安装在目录“$(localstatedir)”下。
sharedstatedir
用于安装那些可由程序运行时修改的文件,这些文件与体系结构无关。通常它的值为:“/usr/local/com”,要求在使用时应写为:“$(prefix)/com”。(使用“Autoconf”工具时,应该为“@sharedstatedir@”)
localstatedir
用于安装那些可由程序运行时修改的文件,但这些文件和体系结构相关。用户没有必要通过直接修改这些文件来配置软件包,对于不同的配置文件,将它们放在“$(datadir)”或者“$(sysconfdir)”目录中。“$(localstatedir)”值通常为:“/usr/local/var”,在使用时应写为:“$(prefix)/var”。(使用“Autoconf”工具时,应该为“@localstatedir@”)
libdir
用于存放编译后的目标文件(.o)文件库文件(文档文件或者执行的共享库文件)。不要在此目录下安装可执行文件(可执行文件应该安装在目录“$(libexecdir)”下)。变量libdir值通常为:“/usr/local/lib”,使用时应写为:“$(exec_prefix)/lib”。(使用“Autoconf”工具时,应该为“@libdir@”)
infodir
用于安装软件包的 Info 文件。它的缺省值为:“/usr/local/info”,使用时应写为:“$(prefix)/info”。(使用“Autoconf”工具时,应该为“@infodir@”)
lispdir
用于安装软件包的Emacs Lisp 文件的目录。它的缺省值为:“/usr/local/share/emacs/site-lisp”,使用时应写为:“$(prefix)/share/emacs/site-lisp”。当使用Autoconf工具时,应将写为“@lispdir@”。为了保证“@lispdir@”能够正常工作,需要在“configure.in”文件中包含如下部分:

lispdir='${datadir}/emacs/site-lisp'
AC_SUBST(lispdir)

includedir
用于安装用户程序源代码使用“#include”包含的头文件。它的缺省值为:“/usr/local/include”,使用时应写为:“$(prefix)/include”。(使用“Autoconf”工具时,应该为“@includedir@”)。

除gcc外的大多数编译器不会在目录“/usr/local/include”中搜寻头文件,因此这种方式只适用gcc编译器。这一点应该不是一个问题,因为很多情况下一些库需要gcc才能工作。对那些依靠其它编译器的库文件,需要将头文件安装在两个地方,一个由变量“includedir”指定,另一个由变量“oldincludedir”指定。

oldincludedir
它所指定的目录也同样用于安装头文件,这些头文件用于非gcc的编译器。它的缺省值为:“/usr/include”。(使用“Autoconf”工具时,应该为“@oldincludedir@”)。

Makefile在安装头文件时,需要判断变量“oldincludedir”的值是否为空。如果为空,就不使用它进行头文件的安装(一般是安装完成“/usr/local/include”下的头文件之后才安装此目录下的头文件)。

一个软件包的安装不能替换该目录下已经存在的头文件,除非是同一个软件包(重新使用相同的软件包在此目录下安装头文件)。例如,软件包“Foo”需要在“oldincludedir”指定的目录下安装一个头文件“foo.h”时,可安装的条件为:1.目录“$(oldincludedir)”目录下不存在头文件“foo.h”;2. 已经存在头文件“foo.h”,存在的头文件“foo.h”是之前软件包“Foo”安装的。

检查头文件“foo.h”是否来自于软件包Foo,需要在头文件的注释中包含一个“magic”字符串,使用命令“grep”来在该文件中查找这个magic。
`docdir'
The directory for installing documentation files (other than Info) for this package. By default, it should be /usr/local/share/doc/yourpkg, but it should be written as $(datarootdir)/doc/yourpkg. (If you are using Autoconf, write it as `@docdir@'.) The yourpkg subdirectory, which may include a version number, prevents collisions among files with common names, such as README.
这个目录安装除了Info外的该包提供的文档,它的缺省值/usr/local/share/doc/yourpkg,使用时应写为:“$(datarootdir)/doc/yourpkg”。(使用“Autoconf”工具时,应该为“@docdir@”)。Yourpkg子目录可能包括版本号,为了阻止具有相同文件名字的文件冲突,例如README。
`infodir'
The directory for installing the Info files for this package. By default, it should be, but it should be written as (If you are using Autoconf, write it as `@infodir@'.) infodir is separate from docdir for compatibility with existing practice.
这个目录安装该包的info文件。它的缺省值是:/usr/local/share/info, 使用时应写成:$(datarootdir)/info.(使用“Autoconf”工具时,应该为“@infodir@”).infodir从docdir中单独分离出来为了兼容已经存在的practice。
`htmldir'
`dvidir'
`pdfdir'
`psdir'
Directories for installing documentation files in the particular format. (It is not required to support documentation in all these formats.) They should all be set to $(docdir) by default. (If you are using Autoconf, write them as `@htmldir@', `@dvidir@', etc.) Packages which supply several translations of their documentation should install them in `$(htmldir)/'ll, `$(pdfdir)/'ll, etc. where ll is a locale abbreviation such as `en' or `pt_BR'.
这些目录用于安装特定格式的文档(并不要求支持所有这些格式的文档)。缺省值应该设置为:$(docdir)(使用“Autoconf”工具时,应该为“@htmldir @”等)。
`libdir'
The directory for object files and libraries of object code. Do not install executables here, they probably ought to go in $(libexecdir) instead. The value of libdir should normally be /usr/local/lib, but write it as $(exec_prefix)/lib. (If you are using Autoconf, write it as `@libdir@'.)
`lispdir'
The directory for installing any Emacs Lisp files in this package. By default, it should be /usr/local/share/emacs/site-lisp, but it should be written as $(datarootdir)/emacs/site-lisp.
If you are using Autoconf, write the default as `@lispdir@'. In order to make `@lispdir@' work, you need the following lines in your configure.in file:
lispdir='${datarootdir}/emacs/site-lisp'
AC_SUBST(lispdir)

`localedir'
The directory for installing locale-specific message catalogs for this package. By default, it should be /usr/local/share/locale, but it should be written as $(datarootdir)/locale. (If you are using Autoconf, write it as `@localedir@'.) This directory usually has a subdirectory per locale.
这个目录安装该包用于本地特定消息的目录。缺省值是:/usr/local/share/locale, 但是应该写成:`@localedir@'。这个目录常常对每个locale(本地化)都有一个子目录。

❼ 如何利用UEStudio配置自己的编译环境

1. 语法加亮的问题:
UEStudio(一下检查UES),缺省是支持C/C++和java的语句加亮的。但你必须先告诉UES这是一个.cpp或.java程序,否则一上来就敲源代码,UES会把它当作普通文本文件来对待的。你只要存一下盘,源码类型就会被UES正确识别。 如果有不能识别的其他源码类型,可去UE网站,下载对应的wordfiles,总有一款会适合你。

2. UES本身并不带编译器,但如果你电脑中有这些编译器,那么UES本身是支持build这些程序的。但UES要求Creat->Build->Run这三部曲,才能正确编译。
先打开project manager,指定项目文件的目录,选择相应的编译器,选择模板,键入项目文件名,点击“create(创建)”按钮后,UES会在指定的目录下,建立:项目文件、.cpp,.h文件等。这是在Project菜单中,打开这个新项目文件,在主文件cpp中,键入或拷贝或添加代码,存盘。项目Project中Build或Compiler这时都是可以被选择的了(不再是灰色)。你当然也可以手动创建项目,然后添加自己的源码。--- 【更详细的说明和步骤】,可以在UES的官网上(
Home » Support » Tutorials/Power Tips » UEStudio » Creating your first application
)查看到。

3. UES是根据你的系统安装的程序,或路径,来配置编译器环境的。如果UES没有找到,你可以在Build菜单中,指定编译器的路径。

❽ arm-linux-gcc如何设置编译器的默认引用路径

把路径加到 /etc/profile 或 ~/.bash_profile 里都可以

❾ 如何指定gcc的默认头文件路径

gcc指定头文件路径及动态链接库路径

本文详细介绍了Linux 下gcc头文件指定方法,以及搜索路径顺序的问题。另外,还总结了,gcc动态链接的方法以及路径指定,同样也讨论了搜索路径的顺序问题。本文包含了很多的例子,具有很强的操作性,希望读者自己去走一遍。
一.#include <>与#include “”
#include <>直接到系统指定的某些目录中去找某些头文件。
#include “”先到源文件所在文件夹去找,然后再到系统指定的某些目录中去找某些头文件。
二.gcc指定头文件的三种情况:
1.会在默认情况下指定到/usr/include文件夹(更深层次的是一个相对路径,gcc可执行程序的路径是/usr/bin/gcc,那么它在实际工作时指定头文件头径是一种相对路径方法,换算成绝对路径就是加上/usr/include,如#include 就是包含/usr/include/stdio.h)
2.GCC还使用了-I指定路径的方式,即
gcc -I 头文件所在文件夹(绝对路径或相对路径均可) 源文件
举一个例子:
设当前路径为/root/test,其结构如下:
include_test.c
include/include_test.h
有两种方法访问到include_test.h。
1. include_test.c中#include “include/include_test.h”然后gcc include_test.c即可
2. include_test.c中#include 或者#include 然后gcc –I include include_test.c也可
3. 参数:-nostdinc使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头文件的位置。
在编译驱动模块时,由于非凡的需求必须强制GCC不搜索系统默认路径,也就是不搜索/usr/include要用参数-nostdinc,还要自己用-I参数来指定内核头文件路径,这个时候必须在Makefile中指定。
头文件搜索顺序:
1.由参数-I指定的路径(指定路径有多个路径时,按指定路径的顺序搜索)
2.然后找gcc的环境变量 C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH
3.再找内定目录
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
库文件,但是如果装gcc的时候,是有给定的prefix的话,那么就是
/usr/include
prefix/include
prefix/xxx-xxx-xxx-gnulibc/include
prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include
三.Linux指定动态库路径
众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库, 并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函 数,以及该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。
1.在配置文件/etc/ld.so.conf中指定动态库搜索路径。
可以通过编辑配置文件/etc/ld.so.conf来指定动态库的搜索路径,该文件中每行为一个动态库搜索路径。每次编辑完该文件后,都必须运行命令ldconfig使修改后的配置生效。
举一个例子:
所有源文件:
源文件1: lib_test.c
#include
void prt()
{
printf(“You found me!!!/n”);
}
源文件2: main.c
void prt();
int main()
{
prt();
return 0;
}

阅读全文

与如何指定编译器路径相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:577
python员工信息登记表 浏览:375
高中美术pdf 浏览:159
java实现排列 浏览:511
javavector的用法 浏览:980
osi实现加密的三层 浏览:230
大众宝来原厂中控如何安装app 浏览:912
linux内核根文件系统 浏览:241
3d的命令面板不见了 浏览:524
武汉理工大学服务器ip地址 浏览:147
亚马逊云服务器登录 浏览:523
安卓手机如何进行文件处理 浏览:70
mysql执行系统命令 浏览:929
php支持curlhttps 浏览:142
新预算法责任 浏览:443
服务器如何处理5万人同时在线 浏览:249
哈夫曼编码数据压缩 浏览:424
锁定服务器是什么意思 浏览:383
场景检测算法 浏览:616
解压手机软件触屏 浏览:348