当前位置:首页 » 编程软件 » 清除编译环境

清除编译环境

发布时间: 2023-01-14 14:45:03

c语言编写程序脱离编译环境能用吗

源文件一般而言是通用的,只要在对应平台有对应的编译环境,编译得到的可执行文件即可运行。不过如果源文件中包含依赖平台特性的代码,可能在另外的平台上无法编译或编译后无法正常运行。
但是不同平台编译得到的目标文件以及链接后的可执行文件往往不兼容。例如早期16位Windows上编译的程序无法在WinNT内核上运行。所以如果不确定目标平台,最好用源文件编译一次。
另外一个情况是缺少依赖的运行库。例如VC++6以后版本的VC的编译的非托管C++程序需要在运行该的程序的机器上安装C++运行库;.NET程序需要在机器上安装.NET
Framework或.NET
Compact
Framework才能运行等。
====
[原创回答团]

⑵ 如何编译AMBER14

一、编译环境与要解决的问题
操作系统:RHEL6
GPU: NVIDIA Tesla K40c
AMBER: 14
硬件:HP Z820
编译出现的问题:AMBER14不支持使用CUDA7.0, 仅支持6.5或更低版本;RHEL6操作系统安装CUDA6.5不识别Tesla K40c, 需要CUDA7.0。
二、解决方式
安装CUDA7.0做为驱动,安装CUDA6.5作为runtime。
三、具体安装方式
1, 安装第三方资源库:epel-release-6-8.noarch.rpm
wget http://mirrors.opencas.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -i http://mirrors.opencas.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
这个资源库注释有问题,需要进行修改
vim /etc/yum.repos.d/epel.repo
修改下面两行
#baseurl=xxxx
mirrorlist=https://####
为:
baseurl=xxxx
#mirrorlist=xxxx
*如果不修改,有可能yum install cuda回提示epel meta link错误
2,安装CUDA 7
CUDA7作为TESLA K40c的驱动
1)从nvidia网站上下载,CUDA7的Repository文件,rpm安装
rpm –install cuda-repo-rhel6-7-0-28.x86_64.rpm
2)清除过期meta-data
yum clean expire-cache
3)安装cuda 7
yum install cuda
注:如果之前没有修改第三方资源库epel的话,会出现epel的问题而没有办法继续安装
成功后,CUDA的目录为:
/usr/local/cuda
编译AMBER,需要声明CUDA_HOME变量:
export CUDA_HOME=/usr/local/cuda
4)尝试安装AMBER14
安装amber
./configure -cuda gnu
make install
*出现错误:cuda版本太高,只能用6.5以下的
Error: Unsupported CUDA version 7.0 detected.
AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5
Configure failed e to the errors above!
3.安装CUDA6.5,提供Runtime
1)删除/usr/local/cuda目录
rm -fr /usr/local/cuda
这个目录将被CUDA6.5的内容覆盖
2)卸载cuda-repo-rhel6-7-0-28.x86_64.rpm
rpm -e cuda-repo-rhel6-7xxxx #xxxx代表具体的版本号
3)安装 CUDA 6.5
按照上面步骤2. 安装CUDA 7的流程,从下载 cuda-repo-rhel6-6.5-14.x86_64.rpm开始,安装CUDA6.5
4, 驱动测试
CUDA自带有examples,编译进行测试。比如:
设备验证
cp /usr/local/cuda/samples .
cd samples
cd 1_Utilities
make
./deviceQuery
[amber@amtech deviceQuery]$ ./deviceQuery
./deviceQuery Starting…
——————————————————————————————–
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 2 CUDA Capable device(s)
Device 0: “Tesla K40c”
CUDA Driver Version / Runtime Version 7.0 / 6.5
CUDA Capability Major/Minor version number: 3.5
Total amount of global memory: 11520 MBytes (12079136768 bytes)
(15) Multiprocessors, (192) CUDA Cores/MP: 2880 CUDA Cores
GPU Clock rate: 745 MHz (0.75 GHz)
Memory Clock rate: 3004 Mhz
Memory Bus Width: 384-bit
L2 Cache Size: 1572864 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent and kernel execution: Yes with 2 engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device PCI Bus ID / PCI location ID: 6 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
Device 1: “Tesla K40c”
CUDA Driver Version / Runtime Version 7.0 / 6.5
CUDA Capability Major/Minor version number: 3.5
Total amount of global memory: 11520 MBytes (12079136768 bytes)
(15) Multiprocessors, (192) CUDA Cores/MP: 2880 CUDA Cores
GPU Clock rate: 745 MHz (0.75 GHz)
Memory Clock rate: 3004 Mhz
Memory Bus Width: 384-bit
L2 Cache Size: 1572864 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent and kernel execution: Yes with 2 engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device PCI Bus ID / PCI location ID: 66 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
> Peer access from Tesla K40c (GPU0) -> Tesla K40c (GPU1) : No
> Peer access from Tesla K40c (GPU1) -> Tesla K40c (GPU0) : No
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.0, CUDA Runtime Version = 6.5, NumDevs = 2, Device0 = Tesla K40c, Device1 = Tesla K40c
Result = PASS
这个机器有两个K40c GPU
5, amber14的GPU版编译
1,单GPU版编译
cd $AMBERHOME
make clean
./configure -cuda gnu
make install
测试
make test.cud
2,多GPU并行版编译
cd $AMBERHOME
make clean
./configure -cuda -mpi gnu
make install
测试:
export DO_PARALLEL=’mpirun -np 2′ # for bash/sh
setenv DO_PARALLEL ‘mpirun -np 2’ # for csh/tcsh
./test_amber_cuda_parallel.sh

⑶ 如何改变eclipse的java编译环境

修改Eclipse的编译器方法:

鼠标右键选择项目,点击Properties,选择Java Compiler,修改Compiler compliance level版本和JRE System Library的版本一样。

⑷ 怎么打包发布基于Qt4 Windows的软件

先从Windows平台开始。 Windows平台下的软件发布最主要的需求是想办法找到在你的发布中应该包含哪些必须的文件, 同时要保证应用程序运行时能正确找到这些文件, 发布基于Qt的软件也是同样的需求。 就不同的情况一一阐述:
静态链接的情况
静态链接是最简单的情况,这种情况下需要发布的文件数量是最少的, 只需要发布一个单独的执行档外加编译器相关的dll文件。 这种情况下Qt库首先要静态编译:
configure -static [other options]
nmake sub-src
//如果用mingw编译,nmake替换成mingw32-make
//sub-src指只编译src目录,这样省去编译examples等目录的时间
注意哦,如果你在同一个build目录用不同的configure选项去编译Qt, 必须在重新configure之前运行nmake distclean清除以前生成的目标和中间文件, 保证一个干净的编译环境,不然有可能会出一些奇怪的链接错误哦~~
编译好Qt静态库下一步再编译应用程序:
cd application_dir
nmake clean
qmake -config release
nmake
编译成功之后应该得到一个可以独立执行的exe文件, 可以将程序拷贝到其他没有安装qt的机器上测试。 需要注意的是这个程序不一定百分之百可以运行,因为编译器带的库仍然是动态编译的,如果你的目标机里没有这些库的话仍然会有运行时的问题。 后面会讲到如何用工具来检查应用程序的依赖。
静态链接方法比较重要的缺陷是无法支持插件, 而且插件不能编译进程序中,所以插件提供的功能就丢失了。 这样一来要想用到插件的功能还是要用下面的方法。
动态链接的情况
动态链接程序的发布需要解决两个问题, Qt库需要与应用一起发布, 另外插件也要一起打包,并保证放在适当的位置, 这样应用程序才能找到它。
动态编译应用的基础是先将Qt库动态编译(默认参数即是动态编译),这样用普通的程序编译流程就可生成动态编译的执行档,使用的命令与上面相同。 我们可以用一个Qt的例子测试前面说的发布方法, 在Qt包里带的例子Plug & Paint
是个非常合适的测试例子,它既包含应用又自带插件文件, 可以很好的验证发布是否正确。 该例子在examples/tools/plugandpaint下。 这个例子如果编译成功, 得到一个plugandpaint.exe和pnp_basictools.dll、pnp_extrafilters.dll两个插件文件。
程序打包
第一步,将应用程序和Qt库拷贝到同一目录。(Windows下库的搜索先从当前目录开始,然后是在系统PATH环境变量指定的路径查找。)
第二步,检查应用程序还依赖哪些dll,如编译器带的dll或其他系统dll。 参见应用程序的依赖关系一节。
第三步,验证程序可以在目标系统上正确运行, 将目前包里的文件拷贝到目标系统上,尝试运行程序。
第四步,发布插件程序。 插件和普通的动态库的发布不同, 不能简单的将之拷贝到应用目录里。 应用程序在运行时会在其对应的plugins目录下去查找插件。 针对这个例子,发布包应该类似这样的结构:

模块

文件名

执行档 plugandpaint.exe
Basic Tool插件 plugins\pnp_basictools.dll
ExtraFilters插件 plugins\pnp_extrafilters.dll
Qt Core模块 qtcore4.dll
Qt Gui模块 qtgui4.dll
除了程序和Qt库,还有下面的编译器库:

VC++ 6.0

VC++ 7.1 (2003)

VC++ 8.0 (2005)

C运行库 msvcrt.dll msvcr71.dll msvcr80.dll
C++运行库 msvcp60.dll msvcp71.dll msvcp80.dll

插件的位置除了Qt默认的路径还可以通过代码里调用Qt的API来指定, 相应的API是QApplication::addLibraryPath()或QApplication::addLibraryPaths(). 如:
qApp->addLibraryPath(“c:\some\path”);
上述代码的推荐调用位置是在main函数中,QApplication构造完毕之后。 应用程序会在搜索默认路径之后去搜索你指定的库路径。
Visual Studio 2005
vs2005编译的程序在发布的时候还需要考虑一些额外的情况,比较麻烦点。 要把manifest文件拷贝到应用程序的目录, 这个文件包含应用的依赖信息, 在运行时需要用到。 另外,如果你的动态库的依赖和应用不同,那么还需要把manifest文件内嵌到dll文件中。 Qt4.1.3之后的版本提供了CONFIG选项来提供内嵌manifest文件的功能, embed_manifest_dll和embed_manifest_exe, 用法是将下面的选项加入pro文件, 如下:
CONFIG+=embed_manifest_exe
默认情况下embed_manifest_dll已经开启。 关于manifest文件的更多信息参考MSDN的相关文章。
有两种发布vc运行库的方法, 一个是安装vs的运行库到目标系统中, 另外是将库打包到应用程序的目录。 打包vs运行库很简单,就是把 <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC80.CRT拷贝到应用程序目录,与应用程序一起打包。 如果你在打包运行库的同时还要发布插件程序,要注意把manifest文件从插件中去掉,不然在一些系统上会导致插件无法加载。 去掉manifest的方法是在插件的pro文件中加入下面的选项:
CONFIG-=embed_manifest_dll
VS系统的运行包可以免费获得, 只需要将这个安装包和你的应用安装包一起发布,并且在安装你的程序的时候去运行这个安装包就行了。 比如32位的x86系统, 安装32bit-x86-vs运行时包。 其他平台对应的包可以在微软网站找到。

⑸ 用c++编出的程序怎么脱离编译环境运行

用c++编出的程序,经过“点击Build菜单->Build”编译后,在你建立的项目文件夹中有一个"Debug",或"Release"的文件夹,那里有一有“***.exe”的可执行文件,那就是你要找的那个直接双击就能运行的程序。
一旦编译了成功了,那个文件夹就会有这样一个可执行文件,每编译一次通常就会更新一次。这个可执行文件是脱离编译环境的,不管安装不安装VC++它都能运行。
明白了吗?

⑹ java的编译环境

是的,JDK。

如果你用的是MyEclipse等开发工具编译,那么最好保证MyEclipse的版本相同,说到底也是保证JDK的版本一致。

⑺ Delphi 7.0源程序如何脱离编译环境,`在别的机子运行!!!

打开你建立的工程,在Delphi主菜单中选择Project
---
Options,找到Packages项,其中有一个Build
With
Runtime
Packages的东东,将它前面的勾去掉,然后重新编译一次,生成的EXE文件就可以直接在其它机器上运行了。

⑻ 用VC6编的软件如何脱离编译环境运行

将应用程序打包,方法如下:
(1)打开VB6.0 IDE,加载你的工程,单击“外接程序”菜单下的“外接程序管理器”。
(2)在弹出的窗体中选择“打包和展开向导”(最后一项),在加载行为中选择“加载/卸载”,确定。
(3)再次单击“外接程序”菜单项,单击“打包和展开向导”。
(4)单击“打包”,选择“标准安装包”,一直单击下一步,最后点“完成”,点“关闭”。
(5)此时你的工程文件夹下会有一个名为“包”的文件夹。
(6)单击“展开”,单击下一步(2个),此时询问“您希望在哪里展开这个包?”,单击“新建文件夹”

在电脑中其他位置新建一个文件夹,单击下一步,点“完成”,点“关闭”。
(7)关闭“打包和展开向导”。
(8)在刚才建立的文件夹下就是安装程序了!(三个文件:工程名.cab setup.exe setup.lst)^_^

注意:如果在其他机器上安装时提示“需要重新启动”,通常是你的程序中引用的资源路径不正确,请用App.path等绝对路径,如还不行,可能是一些.dll文件版本不兼容或不存在等其它原因,请在打包时加载你用到的所有的库,若仍有问题联系我。

E-mail:[email protected]
QQ:157489522

⑼ C++编译的时候为什么要先clean

clean是因为有个makefile文件,去清除上一次编译余下的文件,这样做能保证编译器会检查到你所有用到的文件并编译它们,保证编译出来的程序是最新的。您可以试一下不clean,我想结果会一样。

⑽ 怎样退出Vc++6.0的编译环境

不会吧。把vc关了就行,如果关不掉,到任务管理器里,把msdev.exe杀掉。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:645
制作脚本网站 发布:2025-10-20 08:17:34 浏览:936
python中的init方法 发布:2025-10-20 08:17:33 浏览:632
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:821
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:731
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1066
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:299
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:160
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:852
python股票数据获取 发布:2025-10-20 07:39:44 浏览:763