netcdf4.1.3安装后环境变量设置以跟Qt下使用静态动态库方法新
qt5环境变量说明手册
qt5环境变量说明手册一、介绍QT是一个跨平台的C++图形用户界面应用程序开发框架,具有丰富的功能和广泛的应用领域。
在使用QT进行开发时,了解和正确设置环境变量是非常重要的。
本手册将详细介绍QT5的环境变量,并提供相应的设置方法和注意事项。
二、环境变量的作用环境变量是操作系统提供的一种机制,用于存储和传递各种系统和应用程序的配置信息。
在QT5开发中,环境变量的设置对于编译、构建和运行应用程序起着重要的作用。
不正确的环境变量设置可能导致编译错误、链接错误或者运行时异常。
三、QT5环境变量说明1. QTDIR:QT安装目录的路径。
在安装QT5时,可以选择默认的安装路径,也可以自定义安装。
在设置QTDIR环境变量时,需要将路径设置为QT的安装目录。
例如:QTDIR=C:\Qt\Qt5.14.22. QMAKESPEC:QT编译工具链的规范。
在进行QT程序的编译时,需要根据目标平台和编译工具链选择相应的规范。
QMAKESPEC 环境变量可以设置为规范的路径。
例如:QMAKESPEC=C:\Qt\Qt5.14.2\mingw73_64\mkspecs\win32-g++3. PATH:系统路径。
在进行编译和运行QT应用程序时,需要将QT的工具链和库文件路径添加到系统的PATH变量中,以便操作系统能够正确地找到相关的文件。
例如:PATH=%QTDIR%\mingw73_64\bin;%PATH%4. QMAKEFEATURES:自定义的qmake特性。
在QT开发中,可以通过自定义qmake特性来扩展和定制编译过程。
QMAKEFEATURES 环境变量可以设置为特性的路径。
例如:QMAKEFEATURES=C:\Qt\myfeatures5. QMAKEPATH:qmake的搜索路径。
在进行QT项目的构建时,qmake会根据QMAKEPATH环境变量的设置,在指定路径中搜索项目所需要的资源文件和库文件。
例如:QMAKEPATH=C:\Qt\mylibs四、环境变量的设置方法和注意事项1. Windows系统下,可以通过以下方式设置环境变量:- 右键点击“我的电脑”,选择“属性”;- 在弹出的窗口中,点击“高级系统设置”;- 在“系统属性”对话框中,点击“环境变量”按钮;- 在“环境变量”对话框中,点击“新建”按钮,输入变量名和变量值。
第三方库 环境变量设置方法
第三方库环境变量设置方法1. 第三方库是指开发者可以在自己的代码中使用的外部库,可以提供额外的功能和工具,用来简化开发过程。
2. 设置环境变量是指在操作系统中配置一些全局变量,以便在不同的应用程序中共享和访问这些变量。
3. 在使用第三方库之前,需要先在开发环境中进行配置和设置。
4. 下载和安装相应的第三方库。
通常,这可以在官方网站或开发者社区中获取到库的安装文件或源代码。
5. 针对不同的操作系统,安装步骤可能有所不同。
对于Windows系统,安装通常是通过双击安装文件并按照安装向导进行操作。
对于MacOS和Linux系统,可以使用包管理器来安装库,例如Homebrew或apt-get。
6. 安装完成后,需要设置环境变量来告诉开发环境和操作系统去哪里找到这个库。
7. 在Windows系统中,可以通过系统属性中的"高级系统设置"来设置环境变量。
点击"环境变量"按钮,然后在"系统变量"或"用户变量"中添加新的变量。
将库的路径作为变量的值,例如"C:\Program Files\Library"。
8. 在MacOS和Linux系统中,可以编辑bash配置文件,例如.bashrc或.bash_profile,将库的路径添加到PATH变量中。
例如:exportPATH=PATH:/usr/local/Library。
9. 设置好环境变量后,需要重启开发环境或运行命令提示符,以使环境变量生效。
10. 在开发环境中,可以使用库的相关函数和类来完成特定的任务。
具体使用方法可以参考库的文档和示例代码。
11. 在代码中,需要引入库的模块或包。
具体引入方法可以根据不同的编程语言和库来设置。
12. 在Python中,可以使用import关键字来引入第三方库。
例如:import numpy。
13. 部分库可能需要进行额外的配置和初始化步骤,以便在代码中使用。
怎么配置环境变量
怎么配置环境变量
要配置环境变量,可以按照以下步骤进行操作:
1. 打开控制面板:右键点击「开始」菜单,选择「控制面板」。
2. 打开系统属性:点击「系统和安全」,然后选择「系统」,再点击左侧的「高级系统设置」。
3. 打开环境变量设置:在「系统属性」窗口中,点击「环境变量」按钮,这将打开「环境变量」对话框。
4. 添加或编辑环境变量:在「环境变量」对话框中,可以看到两个部分,上半部分是用户变量,下半部分是系统变量。
可以选择选择你要添加或编辑的变量。
5. 添加新的环境变量:点击「新建」按钮,在「变量名」框中输入变量的名称,在「变量值」框中输入变量的值,然后点击「确定」。
6. 编辑已存在的环境变量:在「系统变量」或「用户变量」下的列表中,选择要编辑的变量,然后点击「编辑」按钮。
在「编辑环境变量」对话框中,可以修改变量的名称或值,然后点击「确定」。
7. 删除环境变量:在「系统变量」或「用户变量」下的列表中,选择要删除的
变量,然后点击「删除」按钮。
8. 完成配置:点击「确定」关闭所有打开的窗口。
完成以上步骤后,环境变量将生效。
请注意,对于某些应用程序的更改可能需要重新启动才能生效。
静态和动态编译QT
这时编译同样得到一个非常大的可执行程序(我写的这个贪吃蛇一共500多行,生成的exe有8M)。用AspPack压缩一下。就可以发给用户了(这时是2.6M)。
quote: “这样编译出来的程序比较大,可以先用strip命令去掉程序里面一些无用信息后,用ASPack或者UPX之类的压缩加壳软件压缩一下,两者的压缩率基本都达到30%多一点,压缩效果还是很明显的。”
删除其中的”-mthreads”
quote:
一般只有用到threads的时候才用到mingwm10.dll,我们通常遇到的”缺少 mingwm10.dll”问题,可以在程序qmake生成makefile.release文件后删除”-mthreads”参数即可,一般在 “LFLAGS”后面。当然,这只是临时解决方案,每次都要手动修改,也可以在编译QT前先修改qmake.h,不过不推荐这种方法。其实, mingwm10.dll也就十多K,每次发布程序时一起打包也无所谓。
这个过程需要1-2个小时。QT目录会变成1.8G左右。注:mingw32-make和make是一样的。
如果用VC2005平台,在编译Qt的时候,configure.exe -static -platform win32-msvc2005
然后nmake sub-src或者nmake release sub-src完成静态编译。
5 解决MinGW的mingwm10.dll依赖问题
在Makefile.release里找到:
LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -static -Wl,-s -Wl -mthreads -Wl, -subsystem,windows
QT编译与配置(静态库与静态运行时库)
QT编译与配置(静态库与静态运行时库)Qt是一个跨平台的应用程序程序框架,可以运行于Windows、Linux、Mac、S60等平台,自从其开源的授权协议由GPL变为LGPL后就变得流行起来。
LGPL协议允许使用者开发私有程序而不开源,前提是Qt库必须以动态链接的方式加入程序。
打开Qt的下载页面,可以看到SDK和Library的下载链接。
SDK提供了完整的开发环境,而Library仅仅包含代码和编译出的库。
这里的库都是动态链接的Release和Debug版库(相应的Configure参数为-debug-and-release -shared)。
而如果需要静态库,就要自己编译了,如果不想自己编译,qtcn论坛上有不少已编译的静态库可以直接下载,地址/bbs/read.php?tid=11800。
如果要自行编译,那么备好一份代码就够了,ftp:///qt/source/下有Qt的各个版本的代码下载下面介绍一下Windows下的静态库编译过程编译代码有基本的两步,configure和make,不过在这之前还要设置好编译环境。
如果是VS,只要执行“Visual Studio 200X命令提示”就行了,如果是Mingw,需要把mingw下的bin目录加入到环境变量中。
这里推荐的configure命令是configure [-release|-debug|-debug-and-release] -static -no-qt3support -no-webkit -platform[win32-g++|win32-msvc2008|...]要用Debug还是Release就看个人情况了,以上代码的release版编译结果大概有3G。
禁用qt3support是因为这比较容易引起一些Bug,禁用webkit是因为这个东西占了代码总量的大概1/3,而基本上用不到。
platform 参数指定了编译的配置文件,实际上就是qt\mkspecs目录下的各个配置。
Qt静态库的下载和安装配置-修正
Qt静态库的下载和安装配置(QML/QtQuick修正)(2015.03.31 by Winland)在Windows下使用Qt开发最后都是要发布程序的,Qt官方的库都是动态链接库,如果发布就需要一大堆的dll,而且还要记得复制plugins/platforms里面的插件,如果用到各种格式图片还要plugins/imageformats里面的插件,所以东西会越弄越多。
针对Windows部署基于Qt的软件,Qt官方有专门文档:http://doc.qt.io/qt-5/windows-deployment.html对于动态版本程序发布,官方Qt库里面也带了专门部署工具:QTDIR/bin/windeployqt ,这个本人也没用过,感兴趣的可以自己试试。
本文主要讲Qt静态库的下载、安装和配置使用。
使用静态Qt编译的程序只需要一个exe文件,就可以走遍天下都不怕。
可以自己根据Qt的源代码编译自己的静态版本Qt库,但这个过程非常耗费时间,而且如果有问题还要重新编译,比较麻烦。
幸好网上有现成编译好的静态库,所以给新手和懒人提供了方便。
一、Qt Static Builds 下载在网上寻找Qt静态库,就搜索Qt Static Builds ,目前找到两个地方有:/projects/static-qt/https:///fostersoftware/QtStaticWindows第一个是SourceForge上的项目,第二个是GitHub上的项目,这两个网站希望新手记牢了,以后要找好东西都可以去这两个网站。
GitHub上面的QtStaticWindows比较新,是5.3.2版本的,所以就选这个来做教程示范。
从GitHub网站下载东西,可以直接点击网页右边“Download ZIP”但是这个下载可能比较卡比较慢,也可能挂掉。
推荐的是安装git工具,新建QtStatic目录,在该目录里执行命令:git clone https:///fostersoftware/QtStaticWindows.git然后等待下载完成,文件就会出现在QtStaticWindows子目录里面。
QT安装及环境变量设置
QT安装及环境变量设置一直以来,对于Qt环境变量的配置及常见问题一直比较混淆,最近重装了Win7系统,有需要安装Qt了,于是借这个机会把那些琐碎过一遍,拿出来和大家分享一下。
QT安装一. 下载安装文件:qt-sdk-win-opensource-2010.05.exe下载网址:/downloads,这是Qt官方网站,您可以选择下载更新的版本,我的这个版本已经比较老了。
二. 安装Qt运行Qt安装文件,按照指导一步一步安装即可,我就不赘述了。
三. 汉化Qt可以到CSDN上下载,我上传了汉化包及使用说明,网址为:/source/3255642QT环境变量设置四. QT环境变量设置Qt环境变量的设置可以可以参考Qt安装目录bin文件夹下的qtenv.bat的设置,比如我的安装路径为D:\Qt,那么该目录就在D:\Qt\bin\qtenv.bat,其内容为:====================================== ============@echo offremrem This file is generatedremecho Setting up a MinGW/Qt only environment...echo -- QTDIR set to D:\Qt\qtecho -- PATH set to D:\Qt\qt\binecho -- Adding D:\Qt\bin to PATHecho -- Adding %SystemRoot%\System32 to PATHecho -- QMAKESPEC set to win32-g++set QTDIR=D:\Qt\qtset PATH=D:\Qt\qt\binset PATH=%PATH%;D:\Qt\bin;D:\Qt\mingw\binset PATH=%PATH%;%SystemRoot%\System32set QMAKESPEC=win32-g++==================================================上面是批处理代码,其涵义简述如下:@:表示后面的命令不回显echo:命令参数为[on] [off] [message] 分别表示[以后的命令都显示][都不显示][显示message]rem:是注释用的。
Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2以后版本)
Linux下⽤Intel编译器编译安装NetCDF-Fortan库(4.2以后版本)本来这个问题真的没必要写的,可是真的困扰我太久%>_<%,决定还是记录⼀下。
⾸先,最权威清晰的安装⽂档还是官⽅的:(写此⽂时,最近版为4.2)那这个⽂档最开始就告诉我们,⾃NetCDF库4.2版本以后,Fortran的库和C的库就要分开build啦!⽽且要装Fortran的库必须先装好C的库。
所以先装C的库咯:仍然官⽅⽂档:(写此⽂时,最新版本为4.3.2)那这个⽂档告诉我们:要装NetCDF-C的库,有三个(其实是两个)必须装的:zlib,HDF5,(curl)。
综上,需要下载4个tar的包。
点我们下载:参照官⽅⽂档,zlib和hdf5的安装⽐较简单,指定⼀下安装路径即可:build zlib:$ ./configure --prefix=${DIR1}$ make check installbuild HDF5:$ ./configure --with-zlib=${DIR1} --prefix=${DIR1}$ make$ make check$ make install其中,⽐较容易出问题的是HDF5的安装,参阅成功之后,就可以进⾏netcdf-c和netcdf-fortran库的安装了,这⾥有个问题要注意:编译安装库时候的编译器要和你以后编译你的Fortran代码使⽤的编译器⼀致,否者以后在编译Fortran源代码其中⽤到netcdf库时会出错。
以我为例:我平时⽤Intel的编译器,所以此时在安装这两个库的时候,分别⽤Intel C++ Composer和Intel Fortran Composer进⾏编译(后⾯简称icc和ifort)安装好了icc和ifort以后均需要设置⼀下环境变量:(最好添加到~/.bashrc⽂件中)source <compiler_install_dir>/bin/compilervars.sh intel64接下来就是⽤Intel编译器编译安装netcdf库了:关键就是设置⼏个编译选项:export CC=iccexport CXX=icpcexport CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'export F77=ifortexport FC=ifortexport F90=ifortexport FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'export CPP='icc -E'export CXXCPP='icpc -E'对于c库:export DIR1=/snfs01/ff/netcdf_4.3.2$ CPPFLAGS=-I${DIR1}/include LDFLAGS=-L${DIR1}/lib ./configure --prefix=${DIR1} --disable-dap-remote-tests$ make check install对于Fortran库:⾸先仍然如上设置编译选项,然后假设你的c库安装在路径${DIR1}:export LD_LIBRARY_PATH=${DIR1}/lib:${LD_LIBRARY_PATH}然后和c库的编译过程⼀样:CPPFLAGS=-I${DIR1}/include LDFLAGS=-L${DIR1}/lib ./configure --prefix=${DIR1}makemake checkmake install装好了NetCDF-Fortran库了以后如何使⽤?参考⽂档:。
[指南]QTP情况变量的静态生成与加载
QTP环境变量的动态生成与加载用过QTP的大概都知道,QTP里有不少内置环境变量,在我们自动化测试中,大概经常用到的内置环境变量有:ActionName 返回当前运行的是哪一个ActionLocalHostName 返回当前QTP运行的计算机名称ResultDir 返回当前Test的测试报告的保存地址,不包括最后的”\”SystemTempDir 返回系统的临时目录的路径,不包括最后的”\”TestDir 返回当前测试的绝对路径,不包括最后的”\”TestName 返回当前运行的Test名称还有很多其他的内置环境变量,以上列举的都是我们测试中会经常用到的内置变量,但是测试中,更重要的是一些我们自己定义的环境变量,会给我们的测试带来很大的方便,下面我们看看怎样动态地创建跟加载自定义的环境变量(静态创建跟加载的方式我就不多说了,在File-Settings-Environment里可以操作)。
我总结了下,目前自己创建的外部的环境变量的文件格式一共有三种,最常见的是xml格式,其次是ini格式,最后还有txt格式。
其实以上我列举的顺序也是QTP默认读取的顺序,我把它叫做优先级,如果这三种文件里都有一个叫URL的变量,QTP会优先读取xml格式里的URL的值。
不懂没关系,看代码,然后测一下就可以验证了。
代码如下,这里我主要实现了三种文件类型的生成与读写:'动态写入txt格式环境变量Public Function GenTxtEnvVar(byref txtVar,byval varName,byval varValue)txtVar = txtVar + _varName + "=" + varValue + vbcrlfEnd Function'动态写入ini格式环境变量Public Function GenIniEnvVar(byref iniVar,byval varName,byval varValue)iniVar = iniVar + _varName + "=" + varValue + vbcrlfEnd Function'动态写入xml格式环境变量Public Function GenXmlEnvVar(byref xmlVar,byval varName,byval varValue)xmlVar = xmlVar + _"<Variable>" + vbcrlf + _"<Name>" + varName + "</Name>" + vbcrlf + _"<Value>" + varValue + "</Value>" + vbcrlf + _"</Variable>" + vbcrlfEnd Function'动态生成环境变量文件Public Function GenEnvFile(pathName,strVar,fileType)Dim envStreamFilefileType = UCase(fileType)'自定义保留对象syFSO,创建对象Scripting.FileSystemObject'详情请参考我的上一篇文章Set envStreamFile = syFSO.CreateTextFile(pathName)Select Case fileTypeCase "XML"envStreamFile.Write "<Environment>" + vbcrlf + _strVar + _"</Environment>"Case "INI","TXT"envStreamFile.Write "[Environment]" + vbcrlf + strVarCase Elsemsgbox "File Type Wrong! Please make sure the file type in [txt,xml,ini]."End SelectSet envStreamFile = nothing'Set syFSO = nothingEnd Function'以下是测试代码Dim txtVarDim xmlVarDim iniVarGenTxtEnvVar txtVar,"url",""GenTxtEnvVar txtVar,"userAccount","sunyu_qinxi"GenXmlEnvVar xmlVar,"url",""GenXmlEnvVar xmlVar,"userAccount","zzzzzsy"GenIniEnvVar iniVar,"url","/ryansunyu/"GenIniEnvVar iniVar,"userAccount","态度决定测试"GenEnvFile "D:\test.txt",txtVar,"txt"GenEnvFile "D:\test.xml",xmlVar,"xml"GenEnvFile "D:\test.ini",iniVar,"ini"'加载环境变量文件,获取其中的值Environment.LoadFromFile "D:\test.txt"Environment.LoadFromFile "D:\test.ini"Environment.LoadFromFile "D:\test.xml"Print Environment.Value("url")这是我生成的结果,在D盘里的三个文件:我的测试结果是显示的URL的结果为””进一步验证了我之前说的所谓的优先级,有兴趣的大家可以试试。
netcdf4使用方法
netcdf4使用方法一、什么是NetCDF4NetCDF4是一种多维数据格式,可以用于数据的存储、交换和分发。
它也可以被更多的应用程序使用,包括MATLAB、GNUplot、ArcGIS 等。
NetCDF4能够根据应用系统需要,创建定义形状(也被称为结构)的数据类型,把它们一起作为整体保存在一个NetCDF4文件中。
二、NetCDF4的特点NetCDF4拥有许多优点,主要如下:1、NetCDF4可以使用C、C++、Fortran等众多开发语言创建和修改NetCDF4文件,此外,它还可以通过支持NetCDF4访问的工具和应用程序进行访问,比如Python、R等。
2、NetCDF4可以用来创建和维护一组多维数据集,它可以把多个变量组织在一个文件里,并且可以被多个应用程序同时访问。
而且,这些变量彼此间可以有关联。
3、NetCDF4还能够提供保护、备份和存储能力,可以把多维数据存储在计算机内存中,不用担心数据丢失。
4、NetCDF4也可以支持多种文件存储格式,比如压缩文件、圆形文件、有损或无损压缩文件等。
三、NetCDF4的使用步骤1、首先,你需要在电脑中安装NetCDF4,也就是libnetcdf库。
一般来说,你可以从网上下载安装,或者使用apt-get(Linux)或brew(MacOS)来安装。
2、接下来,你要定义你的数据,也就是使用NetCDF4提供的函数来定义多维数据集所需的变量、属性和元数据。
3、这样,你就可以建立一个NetCDF4的文件,其中包含你定义的变量、属性和元数据。
4、接下来,你可以向你的NetCDF4文件添加数据,也可以使用NetCDF4提供的函数来读取数据。
5、最后,你可以使用NetCDF4提供的函数关闭你的文件,来释放文件中的内存。
四、NetCDF4的优势1、NetCDF4具有良好的格式灵活性,它可以支持多种类型的数据,比如标量、矢量和矩阵数据。
它也可以支持更多的类型,比如压缩和无损/有损压缩文件。
linux设置动态库路径和环境变量
linux设置动态库路径和环境变量linux安装源码编译出来的库后,如何让系统默认识别到,如编译后安装在/usr/local/aarch64_qt5.12.0 下1、设置动态库链接配置如果不设置动态库连接,系统就找不到需要的*.so,导致软件执⾏失败。
可以ldd⼀下,如:pi@NanoPi-NEO-Plus2:~$ ldd untitledlinux-vdso.so.1 => (0x0000ffffba839000)libQt5Widgets.so.5 => not foundlibQt5Gui.so.5 => not foundlibQt5Core.so.5 => not foundlibpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffba7e2000)libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffba653000)libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffba5a6000)libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffba585000)libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffba43e000)/lib/ld-linux-aarch64.so.1 (0x0000ffffba80e000)最笨的⽅法就是将编译出来对应的so 拷贝到/usr/lib或者/lib下,如果对应的so很多,那么就凉凉了。
设置⽅法:1)在/etc/ld.so.conf.d路径下,创建动态库配置⽂件*.conf,例如:sudo vim /etc/ld.so.conf.d/Qt5.conf在⽂件中添加:/usr/local/aarch64_qt5.12.0/lib2)加载动态库配置执⾏命令:sudo ldconfigpi@NanoPi-NEO-Plus2:~$ ldd untitledlinux-vdso.so.1 => (0x0000ffffa4b1a000)libQt5Widgets.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Widgets.so.5 (0x0000ffffa451d000)libQt5Gui.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Gui.so.5 (0x0000ffffa4039000)libQt5Core.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Core.so.5 (0x0000ffffa39ed000)libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffa39c1000)libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffa3832000)libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffa3785000)libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffa3764000)libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffa361d000)libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffa360a000)/lib/ld-linux-aarch64.so.1 (0x0000ffffa4aef000)2、设置环境变量执⾏相关程序时,不需要切换到指定⽬录才能执⾏,可以在任意⽬录下执⾏。
NETCDF 软件库使用指南
NETCDF 软件库使用指南2009年4月中国科学院计算机网络信息中心超级计算中心联系人:高晋芳E-mail:jfgao@目录NETCDF 软件库使用指南 (1)1. NETCDF介绍 (3)2. NETCDF的安装 (3)安装目录2.1 (3)2.2 (3)安装过程3. NETCDF使用方法 (4)1. NETCDF介绍NetCDF是基于数组存取的接口库,它定义了一种与机器平台无关的格式,用来表示科学计算的数据格式。
同时还定义了这种格式的存取和其他各种数据的操作,它是由Unidata Program Center in Boulder, Colorado开发的免费软件,多用于WRF等大型软件中。
NETCDF目前最新的版本是4.0.1。
2. NETCDF的安装2.1 安装目录集群部分/home_soft/soft/x86_64/apps/OpenSoft/NETCDF/netcdf-4.0.1/胖节点/home_soft/soft/ia64/apps/OpenSoft/NETCDF/netcdf-4.0.1/2.2 安装过程1.下载最新安装软件包netcdf.tar.gz。
(地址/software/netcdf/ )2.将netcdf.tar.gz上传至安装目录下,执行“tar xzfv netcdf.tar.gz”解压缩包。
3.查看./README文件,以寻找合适的编译器、设置编译选项,进行编译库等。
4.安装步骤(示例):1)修改configure中的prefix选项为“安装目录”/install(最终的安装结果均在此文件夹中)2)执行“./configure”生成Makefile文件3)修改Makefile中的编译器选项,包括:CC/CPP/C++/F77/FC/CXX/CXXCPP,修改Makefile中的编译选项,包括:CPPFLAGS/CFLAGS/FCFLAGS等选项,同时在CPPFLAGS中加入-Df2cFortran(WRF2GRADS编译中用到)。
vs编译动态库的配置方法
vs编译动态库的配置方法VS编译动态库的配置方法动态库(Dynamic Link Library,简称DLL)是一种包含可被其他程序调用的代码和数据的文件类型。
与静态库相比,动态库可以在运行时加载和卸载,使得程序的开发和维护更加灵活方便。
在使用Visual Studio(VS)进行开发过程中,配置和编译动态库是一个非常常见的任务。
本文将一步一步回答如何在VS中配置和编译动态库的问题。
第一步:新建解决方案和项目1. 启动Visual Studio,选择“文件”→“新建”→“项目”。
2. 在左侧的“模板”中,选择“Visual C++”→“Win32”→“Win32控制台应用程序”。
输入项目名称并选择保存路径,然后点击“确定”。
3. 在“Win32应用向导”中,选择“下一步”。
4. 在“应用程序类型”对话框中,选择“Dll”(动态链接库),然后点击“下一步”。
5. 在“附加选项”对话框中,根据需要选择或取消选中一些选项,然后点击“下一步”。
6. 在“Win32应用向导”的最后一个对话框中,点击“完成”以创建项目。
第二步:配置项目属性1. 右键单击解决方案资源管理器中的项目名称,选择“属性”。
2. 在“常规”选项卡中,确认“配置类型”为“动态库(.dll)”,如果不是,选择该选项。
3. 在“常规”选项卡中,根据需要,将“目标框架”设置为对应的.NET 版本。
4. 在右侧面板中,点击“DLL导出”。
5. 在“DLL导出”对话框中,将需要导出的函数写入“函数列表”中,并为每个函数指定导出名称。
这些函数将被其他程序调用。
6. 在“常规”选项卡中,检查“附加包含目录”和“附加库目录”的设置,确保项目依赖的头文件和库文件路径正确。
7. 在“链接器”→“输入”选项卡中,检查“附加依赖项”和“输出文件”设置,确保项目依赖的库文件正确。
8. 在“生成事件”选项卡中,根据需要添加自定义生成事件,例如在编译完成后自动复制动态库文件到指定路径。
qt 引用静态库的方法
qt 引用静态库的方法在Qt中,引用静态库的方法如下:1. 首先,创建一个静态库文件,例如`my_static_lib.lib`。
这个文件通常包含了一些编译后的代码,例如头文件、源文件等。
2. 在项目文件(.pro)中,添加对静态库的引用。
在`SOURCES`或`HEADERS`列表中添加库文件,例如:```proSOURCES += \my_static_lib.cpp \main.cppHEADERS += \my_static_lib.h```3. 如果需要引用的静态库是其他项目生成的,请确保该项目的构建系统已经正确配置,以便在编译时生成静态库文件。
4. 在主程序(如`main.cpp`)中,使用#include指令引用头文件。
例如:```cpp#include "my_static_lib.h"```5. 在需要使用静态库中的功能的地方,直接调用对应的函数或类即可。
例如,如果静态库中有一个名为`my_function`的函数,可以直接调用它:```cppvoid my_function() {// 函数实现}```6. 编译和链接项目。
在编译和链接时,确保链接器能够找到静态库文件。
在项目文件(.pro)中,可以添加如下配置:```proLIBS += -L/path/to/my_static_lib -lmy_static_lib```这样,链接器就会在指定的路径中查找名为`my_static_lib`的库文件。
遵循以上步骤,即可在Qt项目中正确引用静态库。
vs编译动态链接库和静态链接库的方法
vs编译动态链接库和静态链接库的方法在Visual Studio(VS)中编译动态链接库(DLL)和静态链接库(LIB)的方法略有不同。
以下是具体的步骤:编译动态链接库(DLL)1. 打开Visual Studio。
2. 创建一个新的项目。
在“新建项目”对话框中,选择“DLL项目模板”(通常在“Visual C++” -> “Windows桌面”下)。
3. 在项目属性中,设置“配置属性” -> “常规” -> “配置类型”为“动态库(.dll)”。
4. 编写你的代码。
DLL的入口点通常是一个导出函数,例如`__declspec(dllexport) void MyFunction()`。
5. 编译项目。
编译成功后,你会得到一个DLL文件。
编译静态链接库(LIB)1. 打开Visual Studio。
2. 创建一个新的项目。
在“新建项目”对话框中,选择“静态库项目模板”(通常在“Visual C++” -> “通用”下)。
3. 编写你的代码。
LIB不要求特别的入口点,但你需要确保所有的函数和变量都被正确地声明为`__declspec(dllexport)`或`__declspec(dllimport)`。
4. 编译项目。
编译成功后,你会得到一个LIB文件和一个PDB文件。
PDB 文件包含了程序数据库信息,用于源码级别的调试。
请注意,以上步骤可能会因Visual Studio的不同版本和设置有所不同。
如果你遇到任何问题,建议查阅Visual Studio的官方文档或寻求在线帮助。
关于静态链接库(Lib)与动态链接库(DLL)
关于静态链接库(Lib)与动态链接库(DLL)静态链接库(Lib)和动态链接库(DLL)的问题困扰了我很长时间,而当中关键的问题是两者有何联系?又有何区别呢?怎么创建?怎么使用?使用的过程中要注意什么?一直想把这个问题总结一下。
在windows下一般可以看到后缀为dll和后缀为lib的文件,但这两种文件可以分为三种库,分别是动态链接库(Dyna mic-Link Libraries),目标库(Object Li braries)和导入库(Import Libra ries),下面一一解释这三种库。
目标库(Object Li braries)目标库又叫静态链接库,是扩展名为.LIB的文件,包括了用户程序要用到的各种函数。
它在用户程序进行链接时,“静态链接”到可执行程序文件当中。
例如,在V C++中最常使用到的C运行时目标库文件就是LIB C.LIB。
在链接应用程序时常使用所谓“静态链接”的方法,即将各个目标文件(.obj)、运行时函数库(.lib)以及已编译的资源文件(.res)链接到一起,形成一个可执行文件(.exe)。
使用静态链接时,可执行文件需要使用的各种函数和资源都已包含到文件中。
这样做的缺点是对于多个程序都使用的相同函数和资源要重复链接到exe文件中,使程序变大、占用内存增加。
导入库(I mport Li braries)导入库是一种特殊形式的目标库文件形式。
和目标库文件一样,导入库文件的扩展名也是.LIB,也是在用户程序被链接时,被“静态链接”到可执行文件当中。
但是不同的是,导入库文件中并不包含有程序代码。
相应的,它包含了相关的链接信息,帮助应用程序在可执行文件中建立起正确的对应于动态链接库的重定向表。
比如KERNEL32.LIB、USER32.LIB和GDI32.LIB就是我们常用到的导入库,通过它们,我们就可以调用Windows提供的函数了。
如果我们在程序中使用到了Rec tangle这个函数,GDI32.LIB就可以告诉链接器,这个函数在GDI32.DLL动态链接库文件中。
配置动态库路径的四种方法
配置动态库路径的四种方法配置动态库路径是在编译和运行程序时告诉系统动态库文件所在位置的一种方式。
动态库是一些可被多个程序共享的代码和数据的集合,使用动态库可以提高程序的可维护性和可扩展性。
本文将介绍四种配置动态库路径的方法。
一、使用环境变量LD_LIBRARY_PATHLD_LIBRARY_PATH是一个环境变量,用来指定动态库文件的搜索路径。
当程序在运行时需要加载动态库时,系统会在LD_LIBRARY_PATH指定的路径下查找动态库文件。
可以通过export命令设置LD_LIBRARY_PATH环境变量,例如:export LD_LIBRARY_PATH=/path/to/dynamic/libs这样,系统就会在"/path/to/dynamic/libs"路径下查找动态库文件。
二、使用rpath选项rpath是编译时指定动态库搜索路径的一种选项。
通过在编译时加上-rpath选项,可以告诉编译器在指定路径下搜索动态库文件。
例如,使用gcc编译C程序时加上-rpath选项:gcc -o program program.c -Wl,-rpath=/path/to/dynamic/libs这样,编译后的程序在运行时会在"/path/to/dynamic/libs"路径下搜索动态库文件。
三、使用配置文件ld.so.confld.so.conf是一个配置文件,用来指定系统动态库的搜索路径。
可以通过编辑该文件,添加动态库搜索路径。
打开ld.so.conf文件,添加一行:/path/to/dynamic/libs保存文件后,执行以下命令使配置生效:ldconfig这样,系统就会在"/path/to/dynamic/libs"路径下搜索动态库文件。
四、使用LD_PRELOAD环境变量LD_PRELOAD是一个环境变量,用来指定在程序加载时优先加载的动态库文件。
静态库使用方法
静态库使用方法什么是静态库在软件开发中,静态库是一种在编译时将函数和数据打包成一个可执行文件的方式。
它包含了预先编译好的目标代码,可以被多个程序共享使用。
与之相对的是动态库,动态库在运行时才会被加载和链接。
静态库通常以.a或.lib为后缀名,在不同的操作系统中具有不同的格式。
在Windows系统中,静态库通常使用Microsoft Visual C++编译器生成的.lib文件;而在Linux系统中,则使用GNU编译器生成的.a文件。
静态库的优势与动态库相比,静态库具有以下几个优势:1.可移植性强:静态库包含了目标代码,因此可以在不同平台上直接使用,无需依赖外部环境。
2.性能高:由于静态库在编译时就已经链接到可执行文件中,因此运行时无需加载和链接过程,可以获得更高的执行效率。
3.部署方便:由于静态库已经被打包到可执行文件中,所以只需要将可执行文件拷贝到其他机器上即可运行,无需安装额外的依赖。
静态库的使用方法下面将介绍在不同平台上使用静态库的方法。
Windows平台在Windows平台上,使用静态库有以下几个步骤:1.准备静态库文件:首先需要获得所需的静态库文件(.lib),可以从官方网站或第三方资源获取。
将静态库文件保存到本地目录中。
2.创建工程:打开Visual Studio,创建一个新的项目或打开已有项目。
3.配置项目属性:在项目属性中进行配置,以便正确使用静态库。
具体配置步骤如下:–打开“项目”菜单,选择“属性”。
–在属性对话框中,选择“配置属性” -> “VC++目录”。
–在“包含目录”中添加静态库的头文件所在目录。
–在“库目录”中添加静态库文件所在目录。
4.添加引用:在源代码中添加对静态库的引用。
具体步骤如下:–打开“解决方案资源管理器”,右键单击项目名称,选择“属性”。
–在属性对话框中,选择“链接器” -> “输入”。
–在“附加依赖项”中添加静态库文件名(不包含路径和后缀名)。
动态链接库(dll)和静态库的创建及使用教程
动态链接库和静态库的创建及使用教程第一部分静态库(以vs2005为例)一、创建新的静态库项目1.从“文件”菜单中,选择“新建”,然后选择“项目…”。
2.从“项目类型”窗格中,选择“Visual C++”下的“Win32”。
3.从“模板”窗格中,选择“Win32 控制台应用程序”。
4.为项目选择一个名称,如“MathFuncsLib”,并将其输入“名称”字段。
为解决方案选择一个名称,如“StaticLibrary”,并将其输入“解决方案名称”字段。
5.按“确定”启动Win32 应用程序向导。
在“Win32 应用程序向导”对话框的“概述”页中,按“下一步”。
6.从“Win32 应用程序向导”的“应用程序设置”页中,选择“应用程序类型”下的“静态库”。
7.从“Win32 应用程序向导”的“应用程序设置”页中,取消选择“附加选项”下的“预编译头”。
8.按“完成”创建项目。
向静态库添加类1.若要为新类创建头文件,请从“项目”菜单中选择“添加新项…”。
将显示“添加新项”对话框。
从“类别”窗格中,选择“Visual C++”下的“代码”。
从“模板”窗格中选择“头文件(.h)”。
为头文件选择一个名称,如“MathFuncsLib.h”,并按“添加”。
将显示一个空白文件。
2.添加一个名为“MyMathFuncs”的简单类,以执行常见的算术运算,如加、减、乘和除。
代码应与以下内容类似:// MathFuncsLib.hnamespace MathFuncs{class MyMathFuncs{public:// Returns a + bstatic double Add(double a, double b);// Returns a - bstatic double Subtract(double a, double b);// Returns a * bstatic double Multiply(double a, double b);// Returns a / b// Throws DivideByZeroException if b is 0static double Divide(double a, double b);};}3.若要为新类创建源文件,请从“项目”菜单中选择“添加新项…”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
netcdf4.1.3安装后环境变量设置以及Qt下使用静态动态库方法一.netcdf4.1.3安装后环境变量设置
1.下载netcdf安装包,from:
/downloads/netcdf/index.jsp
我下载的是版本4.1.3
2.解压tar -zxvf netcdf-4.1.
3.tar.gz
3. 在解压后的netcdf-
4.1.3所在目录执行:
./configure --disable-dap --disable-netcdf-4 --prefix=/usr/local/netcdf
注意:上面红色的两个选项是他人很多次实验后证明必须的(参考资料1)。
--disable-dap的原因是缺少一个‘curl’的lib,--disable-netcdf-4是报错中提出的解决办法,尽管我个人暂时没有搞清楚为什么。
不写这两个,在configure的时候就会报错,导致后面make失败。
4. make
5. make install,提示安装成功的同时,还会提醒make check,下一步进行。
6. make check
安装完成后,/usr/local/netcdf/文件夹下存在4个文件,分别为bin,include,lib和share
安装完成后,注意环境变量的设置
打开终端输入sudo ~/.bashrc
在最后添加
export
PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0.0/netcdf/bin:/$P ATH
export
LD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0 .0/netcdf/lib:/$ LD_LIBRARY_PATH
export
DYLD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one _1.0.0/netcdf/lib:/$ DYLD_LIBRARY_PATH
测试环境变量是否生效输入ncdump会出现如下阴影区域,说明安装成功
二.Qt下使用静态动态库方法
要想读取netcdf文件(后缀为.nc),我们需要使用上面安装的nefcdf。
具体来说是使用里面的include和lib里面的文件。
在qt工程里面,我们为了使用静态库或者动态库libnetcdf_c++.a或者libnetcdf_c++.so
我们需要如下设置
首先新建一个控制台工程,
查看.pro文件,内容如下
然后将上面的include和lib里面的文件复制到工程目录下,然后右键工程,弹出如下选项,选择Add Library
继续
继续
这时,你会看到记得.pro文件添加了几句话
这时候,按下Ctrl+B编译,会通过,说明库添加完毕。
这样你的程序里面就可以使用netcdf里面的内容了。
作者申卫华
时间20130711 多谢网上资料和网友。