![CLion 链接库?如 lpthread 怎么设置,第1张 CLion 链接库?如 lpthread 怎么设置,第1张](/aiimages/CLion+%E9%93%BE%E6%8E%A5%E5%BA%93%EF%BC%9F%E5%A6%82+lpthread+%E6%80%8E%E4%B9%88%E8%AE%BE%E7%BD%AE.png)
1、先要安装
编译器notepad++只是一个文本编辑器,本身没有编译C/C++的功能。所以要想先配置,就要先装上一个编译器。我是用的是MinGW(但是它不只是一个编译器这么简单,可以简单地理解成是一个开发工具包,我们只是利用了其中的一些开发工具)。2、
设置环境变量什么是环境变量,我也不清楚,不懂的可以自己去查一下资料,回头我也去脑补。我们先设置环境变量。在(系统属性-->高级-->环境变量-->系统变量中)(以下目录都根据自己的电脑MinGW所在位置不同而改变)在PATH的值中加入“D:/MinGW/bin”(如果没有就新建一个PATH)。如果PATH中还有其他内容,需要用英文状态下分号进行分割。这是寻找gcc编译器的
路径。(这一步中PATH的值根据你的MinGW安装的路径设定,要能够访问的gcc编译器,也就是MInGW安装目录里面的bin文件夹)新建LIBRARY_PATH变量,在其值中加入“D:/MinGW/lib”。这是标准库存放的路径。新建C_INCLUDE_PATH变量,在其值中加入“D:/MinGW/include”。这是Include查找头文件的路径。设置结束之后,在cmd控制台窗口下面,输入gcc-v。若已经成功安装好,会显示gcc的版本信息。3、设置notepad++环境变量设置成功之后,接下来我们就是设置notepad++,为其加上编译,运行,甚至调试的功能,我是添加了编译和运行两个。打开notepad++,选择菜单栏的“运行》运行”,或者直接按“F5”,可以看到如下:然后再一次输入下列命令编译:cmd/kg++.exe-g-W-Wall-o$(CURRENT_DIRECTORY)/$(NAME_PART).exe"$(FULL_CURRENT_PATH)"&PAUSE&EXIT然后点击“保存”,并自定义快捷键。运行:cmd/k$(CURRENT_DIRECTORY)/$(NAME_PART).exe"$(FULL_CURRENT_PATH)"&PAUSE&EXIT然后点击“保存”,并自定义快捷键。注意事项:引号的使用是为了适用于文件名或者路径中带有空格的情况,一定不能省略。&PAUSE含义是命令运行后暂停等待键盘 *** 作&EXIT含义是完成后退出运行窗口,回到notepad++gcc的bin目录已经之前在系统环境变量中进行过设定,否则需要补全gcc命令的绝对路径。(很简单,将"g++.exe"换成"D:/MinGW/bin/g++.exe",还是要参照你安装的路径)C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。自己指定的路径就不说了,这里说明一下系统自动搜索的路径。
【1】include头文件路径
除了默认的/usr/include, /usr/local/include等include路径外,还可以通过设置环境变量来添加系统include的路径:
# C
export C_INCLUDE_PATH=XXXX:$C_INCLUDE_PATH
# CPP
export CPLUS_INCLUDE_PATH=XXX:$CPLUS_INCLUDE_PATH
以上修改可以直接命令行输入(一次性),可以在/etc/profile中完成(对所有用户生效),也可以在用户home目录下的.bashrc或.bash_profile中添加(针对某个用户生效),修改完后重新登录即生效。
【2】link链接库文件路径
链接库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的(也可以在编译命令中通过 -l -L 来指定,这里讲的是使用系统默认搜索路径)。
一般 Linux 系统把 /lib /usr/lib /usr/local/lib 作为默认的库搜索路径,所以使用这几个目录中的链接库文件可直接被搜索到(不需要专门指定链接库路径)。对于默认搜索路径之外的库,则需要将其所在路径添加到gcc/g++的搜索路径之中。
链接库文件的搜索路径指定有两种方式:1)修改/etc/so.ld.conf 2)修改环境变量,在其中添加自己的路径
自己在Ubuntu下练习C程序时,用到了库函数math.h,虽然在源程序中已添加头文件“math.h”,但仍提示所用函数未定义,原本以为是程序出错了,找了好久,这是怎么回事呢?
后来上网查了下,发现是Linux系统的原因,在Linux下,若要调用C中的math库里的函数,必须在编译时加上“-lm”,表示链接到math库里~
比如要编译当前目录下的“hello.c”文件,执行的命令为:gcc -o hello hello.c -lm
评论列表(0条)