`

Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法

 
阅读更多

from :http://blog.csdn.net/idber/article/details/9039857

 

这两天在Ubuntu上安装Oracle把人折腾毁了,即使照着网上的教程来,还是出了很多问题。好在最后终于搞定了。写出来总结一下,免得以后忘了。

 

标题注明32位是因为网上教程几乎全是以64位安装为例的,32位系统下照着做是绝对会安装失败的。

 

出现的问题主要有两方面,一个是安装过程中出现的,另一个是安装完成后出现的。

 

安装过程(主要过程就直接copy别人的教程了)及问题:

 

1.将系统更新到最新:

 

sudo apt-get update
sudo apt-get dist-upgrade

 

2.如果使用的Ubuntu不是桌面版(如Ubuntu server),由于Oracle安装需要用到图形界面,所以需要安装桌面程序:

 

sudo apt-get install gnome-core

 

相信很多都是使用的桌面版,那么这个步骤就不需要了。

 

3.  安装Oracle所需的依赖包:

 

sudo apt-get install automake 

 

sudo apt-get install autotools-dev
sudo apt-get install binutils
sudo apt-get install bzip2
sudo apt-get install elfutils
sudo apt-get install expat
sudo apt-get install gawk
sudo apt-get install gcc
sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib
sudo apt-get install ia32-libs
sudo apt-get install ksh
sudo apt-get install less
sudo apt-get install lesstif2
sudo apt-get install lesstif2-dev
sudo apt-get install lib32z1
sudo apt-get install libaio1
sudo apt-get install libaio-dev
sudo apt-get install libc6-dev
sudo apt-get install libc6-dev-i386
sudo apt-get install libc6-i386 
sudo apt-get install libelf-dev
sudo apt-get install libltdl-dev
sudo apt-get install libmotif4
sudo apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
sudo apt-get install libpth-dev
sudo apt-get install libpthread-stubs0
sudo apt-get install libpthread-stubs0-dev
sudo apt-get install libstdc++5
sudo apt-get install lsb-cxx
sudo apt-get install make
sudo apt-get install openssh-server
sudo apt-get install pdksh
sudo apt-get install rlwrap
sudo apt-get install rpm
sudo apt-get install sysstat
sudo apt-get install unixodbc
sudo apt-get install unixodbc-dev
sudo apt-get install unzip
sudo apt-get install x11-utils
sudo apt-get install zlibc

 

很多都是Ubuntu自带的了,谨慎6起见都执行一遍吧。

 

4.创建用户(此步可省略,直接使用当前的用户即可,下面的安装过程都是以不执行这一步为准的)
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba  -d /opt/oracle -s /bin/bash oracle
sudo passwd oracle
5.检查系统变量

 

/sbin/sysctl -a | grep sem

 

/sbin/sysctl -a | grep shm

 

/sbin/sysctl -a | grep file-max

 

/sbin/sysctl -a | grep aio-max

 

/sbin/sysctl -a | grep ip_local_port_range

 

/sbin/sysctl -a | grep rmem_default

 

/sbin/sysctl -a | grep rmem_max

 

/sbin/sysctl -a | grep wmem_default

 

/sbin/sysctl -a | grep wmem_max

 


然后根据上面命令中得到的参数值在/etc/sysctl.conf中增加对应数据,比如:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152kernel.shmmax = 536870912
kernel.shmmni = 4096kernel.sem = 250 32000 100 128

 

net.ipv4.ip_local_port_range = 9000 65500

 

net.core.rmem_default = 262144

 

net.core.rmem_max = 4194304

 

net.core.wmem_default = 262144
net.core.wmem_max = 1048586
运行一下命令更新内核参数:
sysctl –p

 

6.添加对oracle用户的内核限制在 /etc/security/limits.conf 文件中增加以下数据
oracle              soft    nproc   2047

 

oracle              hard    nproc   16384

 

oracle              soft    nofile  1024

 

oracle              hard    nofile  65536

 

oracle              soft    stack   10240
其中oracle是在第四步中创建的用户,跳过第四步的话就写当前用户

 

7.查看/etc/pam.d/login,增加以下行(有了就不用增加了):

 

session required pam_limits.so
同样检查/etc/pam.d/su,没有以下行就自己加上:

 

session required pam_limits.so

 

7.创建需要的文件夹(用于安装oracle)并设置其所有权:
mkdir -p /opt/oracle
mkdir -p /opt/oraInventory

 

chown -R oracle:oinstall  /opt/oracle

 

chown -R oracle:oinstall  /opt/oraInventory

 

同样,如果跳过了第四步,那就将所有权设置命令中的用户oracle和组oinstall改为自己当前用户和组(通常二者是一样的),当然这时也可以不执行这两个chown命令,本来目录创建者就是所有者了。另外,需要root权限执行这些命令(sudo,下同)

 

8.如果Ubuntu上没安装JRE的话,需要安装JRE(我这里直接安装了JDK,以JDK为例):

 

到Oracle官网下载JDK6(最新为7,考虑到兼容性问题,安装6):

 

http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html

 

下载jdk-6u45-linux-i586.bin这个文件。放到主文件夹(home目录)下,进入终端:

 

$sudo chmod 777 jdk-6u37-linux-x64.bin   // 将文件赋予运行权限  

 

$sudo -s ./jdk-6u37-linux-x64.bin /usr/lib/jdk  //将JDK安装到/usr/lib/jdk 目录下。

 

注意:最后安装完成后可能安装到了主文件夹下了,这是使用命令将其全部复制到/usr/lib/jdk目录下即可。(如果没有权限,就使用sudo chmod 777获取权限再复制)

 

配置JDK的环境变量,使用编辑器打开主文件夹下的.bashrc配置文件(隐藏),向其中加入如下内容:

 

#JDK
JAVA_HOME=/usr/lib/jdk/jdk1.6.0_45
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};

 

注意核对一下目录结构是不是正确的。

 

最后验证JDK是否安装正确:

 

java -version

 

出现了JDK版本信息就表示正确了。

 

9.为Oracle配置环境变量。同样在主文件夹下的.bashrc配置文件中加入如下内容:

 

#Oracle
#这个写刚刚创建的文件夹
export ORACLE_BASE=/opt/oracle 
#这个后面可以随便填写
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#数据库的sid
export ORACLE_SID=orcl

 

export ORACLE_UNQNAME=orcl
#默认字符集
export NLS_LANG=.AL32UTF8
#环境变量
export PATH=${PATH}:${ORACLE_HOME}/bin/;

 

10.oracle本身并不支持ubuntu来安装,所以要进行欺骗oracle的安装程序(sudo执行):

 

ln -s /etc /etc/rc.d

 

ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/

 

ln -s /usr/bin/awk /bin/awk

 

ln -s /usr/bin/basename /bin/basename

 

ln -s /usr/bin/rpm /bin/rpm

 

ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a

 

ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /lib/

 

ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/

 

ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /lib/

 

ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /usr/lib/


echo ‘Red Hat Linux release 5’ > /etc/redhat-release

注意:以上命令是对应于32位Ubuntu安装32位Oracle的,如果是64位Ubuntu安装64位Oracle,上面的i386-linux-gnu就都要改成x86_64-linux-gnu,目标目录的lib也要改成lib64.(没有lib64就新建一个)

 

因为Ubuntu将某些库文件根据32位系统和64位系统分别存放了,但Oracle只认/usr/lib和/lib目录,所以需要进行上面的软链接。

 

11.下载Oracle安装程序:

 

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

 

下载Linux x86的那两个文件(64位系统就下Linux x86-64),解压后得到database文件夹。

 

12.正式安装Oracle,为database文件夹下的runInstaller文件赋予可执行权限:

 

chmod 777 runInstaller

 

跳转到database目录,在终端下执行:

 

./runInstaller

 

此时可能会出现database目录下部分文件的权限不足,导致安装程序无法启动的问题,根据提示,对那些文件使用chmod 777进行授权就行了(貌似一共3个文件)。

 

启动安装图形界面后,可能会发现文字乱码,全是口口口:

 

 

这时可以关闭该界面,先在终端输入:

 

export LANG=en_US

 

或者

 

export LANG=zh_CN.gbk

 

然后再执行:

 

./runInstaller

 

就可以在全英文界面下进行安装了。

 

13.安装前进行swap空间检查时可能出现swap空间太小的问题,这一般是由于系统安装时没有创建swap分区,解决办法是创建swap文件来开辟swap空间:

 

通过下面方法建立swap文件:
#dd if=/dev/zero of=/tmp/swapfree bs=32k count=65515 (count是分区数量,swap大小=bs*count,增加2G)
#mkswap /tmp/swapfree (格式化交换分区文件)
#swapon /tmp/swapfree (启用交换分区文件)
#swapon –s (显示swap状态)
修改/etc/fstab,让系统每次启动都把/tmp/swapfree作为swap使用,增加下面一行:
/tmp/swapfree swap swap defaults 0 0

 

14.图形安装界面的第一步是填写电子邮件,但是填完可能会出错:Unexpected error occurred while validating inputs at state 'getOCMDetails'。这是由于缺少pdksh依赖包,简单的解决办法是不填写邮件地址,不勾选下面的复选框,直接下一步,弹出提示后点 ‘Yes’就能直接进入下一步了。完美的解决办法可以到网上去看。

 

 

15.剩下的过程基本上很顺利了,只需要设置一下密码就行了,其他的设置都在启动安装程序前完成了,不要进行改动!

 

16.图形界面下进行依赖检查的时候会列出很多依赖检查失败了,无法进入下一步了,此时选中右上角的‘忽略所有’就可以进入下一步了。

 

17.如果没有严格按照前面的要求做,安装过程中可能弹出错误,此时不要关闭界面,根据给出的日志位置,在日志中查看错误出现的原因,一般都是指定 位置找不到相应的文件导致的,此时打开一个新的终端窗口,找到这些文件并将文件复制到对应的位置或者创建软链接即可。(通常是/usr/lib目录下找不 到库文件,这些库文件都位于/usr/lib/i386-linux-gnu目录下了)然后在图形界面点击“Retry‘即可继续安装。

 

比如:“error in invoking target 'client_sharedlib' of makefile '/opt/oracle11g/server/rdbms/lib/ins_rdbms.mk''这个错误就是没有执行:

 

 

 

ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a

 

ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a

这两个命令导致的(针对32位安装的情况)。

如果严格按照前面的要求做了,上面这种错误是不会出现的。另外,如果32位系统安装64位Oracle或者64位系统安装32位Oracle也是会弹出错误的,错误提示是这样的:

 

Error in invoking target 'client_sharedlib' of makefile '/opt/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk'

 

这种错误就只能重新下载正确的Oracle版本再进行安装了。

 

 

 

18.即使严格按照要求做了,还是会出现两个错误:

 

a.

 

 

解决办法:

 

打开一个新的终端,输入如下命令:

 

sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk

 

然后在图形界面点击‘Retry’就能继续安装了。

 

b.

 

 

解决办法:

 

打开一个新的终端,输入如下四个命令:

 

sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk

 

sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk

 

sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/bin/genorasdksh

 

sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk

 

然后在图形界面点击‘Retry’就能继续安装了。

 

下面的安装过程就没有什么问题了。

 

19.最后应该就顺利完成了,按照安装程序提示最后执行两个脚本:

 

sudo /opt/oracle/oraInventory/orainstRoot.sh
sudo /opt/oracle/Oracle11gee/product/11.2.0/dbhome_1/root.sh

 

就完成了全部的安装。可以通过https://localhost:1158/em进行网络访问了。

 

安装后的问题

 

a.终端下使用“emctl start dbcontrol”命令启动em控制台时出现:Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.的问题,解决办法是设置一个UNQNAME :export ORACLE_UNQNAME=xxxx.

 

b.设置完成后

 

在终端使用emctl命令关闭或启动dbcontrol(emctl stop dbcontrol  , emctl start dbcontrol)的时候还可能出错:

 

OC4J Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_pavilion_orcl not found.
EM Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/pavilion_orcl not found.

 

出现这种错误的原因是Oracle会根据获取到的系统主机名来选择使用相应的EM资料库关闭或启动em控制器,比如Ubuntu系统安装时给主机起 了个pavilion的名称,Oracle获取到的主机名就是pavilion,然后会寻找OC4J_DBConsole_pavilion_orcl 和pavilion_orcl这两个资料库完成关闭或启动em控制器的任务。但是Oracle本身只会根据$ORACLE_HOME/NETWORK /ADMIN/listener.ora文件中的主机名创建资料库。listener.ora中的HOST默认是localhost,所以Oracle默 认创建的资料库是OC4J_DBConsole_localhost_orcl 和localhost_orcl。因此才出现上述找不到资料库的问题。

 

解决此问题的办法是:

 

将$ORACLE_HOME/NETWORK/ADMIN/listener.ora文件中的HOST=localhost改为 HOST=pavilion(paviliion为你的主机名),然后在相应位置完整复制OC4J_DBConsole_localhost_orcl 和localhost_orcl并重命名为OC4J_DBConsole_pavilion_orcl 和pavilion_orcl:

 

cp -rp /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_localhost_orcl  /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_pavilion_orcl 

 

cp -rp /opt/oracle/product/11.2.0/dbhome_1/localhost_orcl  /opt/oracle/product/11.2.0/dbhome_1/pavilion_orcl 

 

如此就能正常启动和关闭dbcontrol了。

 

或者可以直接使用

 

emca -config dbcontrol db

 

命令重新配置一下资料库也可以解决。

 

另外,修改了Ubuntu主机名或IP地址后同样会导致这样的问题,解决办法也是一样的。

 

另附EM资料库配置教程:http://ginaduxuefang.iteye.com/blog/1545144

 

c.EM控制台中的按钮都是口口乱码,其他正常。这是由于Java字体缺失导致的,因为EM的按钮都是Java生成的。解决办法是:

 

在JDK(或JRE)的字体文件夹下新建中文字体目录fallback,并将Windows系统下的simsun.ttc字体文件复制到fallback下,然后将其改名为simsun.ttf并授予恰当权限:

 

$ mkdir $ORACLE_HOME/jdk/jre/lib/fonts/fallback

 

$ cp simsun.ttc  $ORACLE_HOME/jdk/jre/lib/fonts/fallback/

 

$mv  $ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttc  $ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttf

 

$chmod 444 $ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttf

 

后需要清理一下Cache,重启EM即可:
$ rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
$ emctl stop dbconsole
$ emctl start dbconsole
登陆Web页面查看,EM显示就可以正常显示中文了.

 

d.在终端运行sqlplus  / as sysdba命令进入SQLPlus工具时可能出现错误:

 

sqlplus: error while loading shared libraries:  /u01/app/oracle/product/11.1.0/db_1/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied

 

这是由于SELinux导致的,解决办法是禁用SELinux:

 

更改

 

/etc/sysconfig/selinux 

 

文件的内容为

 

 

 

SELINUX=disabled

 

,然后重启

更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled,然后重启。

或者使用chcon命令:

 

chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so 

 

e.启动Linstener时可能出现错误:

 

TNS-12555: TNS:permission denied 

 

原因是无法访问/var/tmp/.oracle文件夹,解决办法是进行授权:

 

sudo chmod 777 /var/tmp/.oracle

 

f.系统关机后每次开机都必须手动启动Oracle,可以编写一个自启动脚本实现每次开机自动启动Oracle,附Oracle启动/关闭方法以及开机自启动脚本:

 

http://www.cnblogs.com/mchina/archive/2012/11/27/2782993.html

 

g.卸载Oracle的方法:

1. 运行 $ORACLE_HOME/bin/localconfig delete    
2. rm -rf $ORACLE_BASE/*    
3. rm -f /etc/oraInst.loc /etc/oratab    
4. rm -rf /etc/oracle    
5. rm -f /etc/inittab.cssd    
6. rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv 
7. rm -rf $ORCLE_HOME

分享到:
评论

相关推荐

    Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法.pdf

    在Ubuntu 12.04 32位系统上安装Oracle 11g涉及一系列步骤,因为这是一个相对复杂的任务,特别是在32位环境下,很多网上教程通常针对的是64位系统。以下是一份详细的安装指南,包括安装过程、依赖包安装和可能出现的...

    Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法.docx

    在Ubuntu 12.04 32位系统上安装Oracle 11g 32位数据库是一项复杂的工作,因为大部分在线教程都是针对64位系统的。本文将详细阐述整个安装过程,以及可能遇到的问题及其解决方案。 首先,确保你的Ubuntu系统是最新的...

    ubuntu12.04安装oracle.pdf

    在64位Ubuntu 12.04.4系统中安装Oracle 11g数据库是一项技术性较强的任务,因为Oracle 11g是为支持多种操作系统环境设计的,包括但不限于Windows、Linux和Solaris等。在Ubuntu环境下,尤其是64位版本,需要额外处理...

    云计算环境hadoop搭建

    本文详细介绍了如何在虚拟机环境下搭建Hadoop伪分布式开发平台的全过程,从Linux操作系统的安装到JDK配置、SSH服务配置等多个方面进行了深入探讨。通过这些步骤,开发者可以在云计算环境中构建出高效稳定的大数据...

    刘嘉怡.中期检查.doc

    刘嘉怡.中期检查.doc

    COMSOL热电效应模型:基于MATLAB API的热电转换仿真与优化

    内容概要:本文详细介绍了如何使用COMSOL Multiphysics进行热电效应仿真的全过程。首先解释了热电效应的基本概念及其应用场景,如手机充电发烫、吹风机温度升高等。接着,通过具体实例展示了如何在COMSOL中建立热电模型,包括选择合适的物理场(焦耳热和热电效应)、设定材料属性(电导率、导热系数、塞贝克系数)、绘制几何形状以及设置边界条件。文中还提供了详细的MATLAB代码片段用于自动化建模流程,涵盖求解器配置、网格划分、后处理等方面的技术细节。此外,作者分享了一些常见问题的解决方案,如求解器不收敛、网格畸变等。 适合人群:对热电效应感兴趣的科研人员、工程技术人员及高校学生,尤其适用于有一定COMSOL和MATLAB基础的学习者。 使用场景及目标:帮助读者掌握热电效应的基本原理和COMSOL仿真技能,能够独立完成从模型构建到结果分析的完整流程。目标是提高热电转换系统的效率,优化设计参数,探索新材料的应用潜力。 其他说明:文章不仅提供了理论指导,还包括大量实战经验和技术技巧,有助于解决实际建模过程中遇到的问题。

    汽车内外饰模具设计规范详解:分型面、斜顶滑块及模架顶出系统的技术要点

    内容概要:本文深入探讨了汽车内外饰模具设计的关键要素,涵盖分型面设计、斜顶和滑块的应用、模架选择以及顶出系统的配置。针对每个部分,不仅提供了理论指导,还辅以Python、MATLAB等编程语言的实际代码示例,帮助理解和实施具体设计方案。例如,分型面设计强调了如何根据产品结构和外观要求确定最佳分型面位置;斜顶和滑块部分讨论了不同类型及其应用场景;模架和顶出系统则关注于结构稳定性和顶出效果的优化。 适合人群:从事汽车模具设计的专业人士,尤其是希望深入了解内外饰模具设计细节的新手设计师和技术人员。 使用场景及目标:适用于汽车内外饰模具设计项目,旨在提高模具设计的精度和效率,减少试错成本,确保产品质量。通过学习本文提供的技术和实践经验,能够更好地应对实际工作中遇到的各种挑战。 其他说明:文中提到的代码示例和经验公式均来源于实际工程案例,具有较高的参考价值。同时,作者还分享了许多宝贵的行业经验和技巧,有助于读者快速掌握模具设计的核心技能。

    python3.10以上 可安装pyside6(类似pyqt),具体安装操作步骤

    python3.10以上 可安装pyside6(类似pyqt),具体安装操作步骤

    【人工智能领域】DeepSeek AI深度探索平台的优势解析:多模态处理、低成本训练与广泛应用场景综述

    内容概要:DeepSeek AI是由杭州深度求索人工智能基础技术研究有限公司于2025年1月20日发布的深度探索AI技术。它具有多模态能力、多语言支持、长上下文理解、领域垂直优化、开源特性等多项技术突破,支

    IIS配置phpweb服务器所需VC-redist.x64.rar

    IIS配置phpweb服务器所需VC_redist.x64.rar

    云南移动5G-A网业战略发展探讨 -创新领航,千帆竞发,共同迈入5G-A新时代.pptx

    云南移动5G-A网业战略发展探讨 -创新领航,千帆竞发,共同迈入5G-A新时代.pptx

    C#学习之OpenCv实现模版匹配案例

    本文描述了如何使用C#基于OpenCvSharpe实现模版匹配功能,其中实现了下功能: 1、图像加载; 2、模版加载、绘制、保存功能; 3、模版匹配功能。

    【软件工程与数据分析】数据结构求职面试问题汇总:涵盖链表、树结构及算法复杂度分析的实战题目解析

    内容概要:本文档汇集了CSci 235软件设计与分析II课程中关于数据结构的面试题,由Stewart Weiss教授整理。文档涵盖了广泛的数据结构主题,包括但不限于链表(如单链表、双向链表、循环链表)、二叉树(如二叉搜索树、最小高度二叉搜索树)、栈、队列等。每个问题都旨在考察求职者对不同数据结构的理解及其应用场景。例如,选择合适的数据结构实现手机通讯录功能,或设计支持撤销功能的文本编辑器。此外,文档还探讨了复杂度分析(Big-O表示法),以及如何优化特定操作的时间复杂度。最后,文档提供了额外的学习资源链接,帮助求职者进一步准备面试。 适合人群:计算机科学专业的学生或有志于从事软件开发工作的求职者,特别是那些希望在技术面试中表现优异的人士。 使用场景及目标:①理解并掌握常见数据结构的基本概念和特性;②学会根据不同场景选择最合适的数据结构;③掌握常见数据结构操作的时间复杂度分析;④为技术面试做充分准备,提高面试成功率。 其他说明:文档中的问题不仅限于理论知识,还包括实际编码练习,建议读者在学习过程中动手实践,以加深理解和记忆。同时,文档提供的额外资源链接可以作为扩展阅读材料,帮助读者更全面地掌握相关知识。

    【路径规划】基于matlab A_Star融合灰狼算法GWO求解多仓库机器人送货路径规划【含Matlab源码 13134期】.zip

    Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    帆软本地打印插件FinePrint 8.0版本

    帆软本地打印插件FinePrint 8.0版本,适用于FineReport8

    【嵌入式控制系统】基于EECS461课程的嵌入式控制技术在汽车领域的应用与发展:从基础概念到未来挑战了文档的主要内容

    内容概要:本文介绍了密歇根大学EECS 461课程——嵌入式控制系统的核心内容及其发展背景。课程旨在教授学生嵌入式控制系统的理论与实践,包括传感器和执行器接口、实时性能和安全要求、混合行为系统、分布式控制网络等方面的知识。文中特别强调了现代汽车作为嵌入式控制系统的典型应用,从1977年到2019年间,汽车技术经历了从模拟控制到微处理器控制的巨大变革,如今的汽车具备了更高效、更环保、更安全的特点。课程还涵盖了S32K144微控制器的开发环境、实验室练习(如数字I/O、PWM信号生成、虚拟墙模拟等)以及自动代码生成工具的使用。 适合人群:具备一定编程基础,特别是对嵌入式系统感兴趣的本科生和研究生,尤其是电气工程、计算机科学专业的高年级学生或硕士生。 使用场景及目标:①了解嵌入式控制系统的基本概念和发展历程;②掌握嵌入式控制系统的设计方法和技术手段,如实时操作系统、中断处理、网络通信协议(CAN)等;③通过实际项目操作,熟悉嵌入式硬件平台和开发工具链的应用。 其他说明:随着汽车行业向智能化、自动化方向发展,对于能够开发复杂嵌入式软件的人才需求日益增长。EECS 461不仅为学生提供了扎实的技术训练,也为他们未来的职业发展打下了坚实的基础。此外,课程还反映了跨学科教育的重要性,鼓励学生打破传统学术界限,培养解决实际问题的能力。

    C#与Halcon联合编程实现高效视觉几何定位与测量框架

    内容概要:本文详细介绍了如何利用C#与Halcon联合编程构建高效的视觉几何定位与测量框架。主要内容涵盖模板创建与匹配、圆测量、数据持久化以及图像采集等方面的技术细节。首先,通过创建形状模板并进行匹配,实现了工件的精确定位。接着,针对圆形物体的测量,提出了动态ROI绘制、亚像素边缘提取和稳健圆拟合的方法。此外,还讨论了模板管理和图像采集的最佳实践,确保系统的稳定性和高效性。最后,强调了Halcon对象的内存管理和错误处理机制,提供了实用的优化建议。 适合人群:具备一定编程基础,尤其是对C#和Halcon有一定了解的研发人员和技术爱好者。 使用场景及目标:适用于工业生产线上的自动化检测设备开发,旨在提高工件定位和尺寸测量的精度与效率。主要目标是帮助开发者掌握C#与Halcon联合编程的具体实现方法,从而构建稳定可靠的视觉检测系统。 其他说明:文中提供了大量实战代码片段和调试技巧,有助于读者快速理解和应用相关技术。同时,作者分享了许多实际项目中的经验和教训,使读者能够避开常见陷阱,提升开发效率。

    【人工智能领域】DeepSeek AI核心技术优势及广泛应用场景:推动全球AI创新与产业变革

    内容概要:本文深入探讨了DeepSeek AI的独特优势及其在全球AI领域的影响力。DeepSeek由中国深度求索公司开发,自2025年1月20日发布以来,凭借其卓越的性能和独特优势迅速吸引了全球关注。其核心优势包括:1) 极致成本效率,如低成本训练和高效推理;2) 强大的推理能力,涵盖多领域表现优异

    php连接sqlserver之VC-redist.x64.exe

    php连接sqlserver之VC_redist.x64.exe

    基于Matlab/Simulink的异步电动机恒压频比与转差频率控制仿真及其实现

    内容概要:本文详细介绍了利用Matlab/Simulink进行异步电动机交流调速系统的仿真实验,主要探讨了两种控制方式:恒压频比(V/F)开环控制和转差频率闭环控制。文中不仅提供了具体的数学模型和代码片段,还展示了不同控制方式下的仿真结果对比,包括转速响应、电流波形和谐波含量等方面的表现。此外,文章深入讲解了SVPWM(空间矢量脉宽调制)的应用,强调了其相对于传统SPWM的优势,并给出了详细的参数调整技巧和注意事项。 适合人群:从事电机控制系统设计的研究人员和技术人员,尤其是对Matlab/Simulink有一定基础并希望深入了解异步电动机调速系统的人群。 使用场景及目标:适用于需要进行电机控制算法开发和优化的场合,旨在帮助读者掌握异步电动机调速的基本原理和具体实现方法,提高仿真的准确性和效率。 其他说明:文章通过丰富的实例和图表,生动地展示了各种控制策略的特点和效果,有助于读者更好地理解和应用相关理论。同时,文中提供的调试技巧对于解决实际工程中的常见问题非常有帮助。

Global site tag (gtag.js) - Google Analytics