Mac OS 10.9 安装Eclipse CDT/Apache/mySQL/Parallel虚拟机/OpenCV
一、MAC OS 10.9 下Eclipse安装完CDT仍然找不到如iostream之类的库
解决办法是Project - Properties - C/C++ General - Preprocessor Include Paths - Providers标签 - 添加CDT GCC MinGW[Shared]
二、Apache
打开“终端(terminal)”,输入 sudo apachectl -v,(可能需要输入机器秘密)。如下显示Apache的版本
接着输入 sudo apachectl start,这样Apache就启动了。打开Safari浏览器地址栏输入 “http://localhost” ,可以看到内容为“It works!”的页面。其位于“/Library(资源库)/WebServer/Documents/”下,这就是Apache的默认根目录。
Apache的安装目录在:/etc/apache2/
设置虚拟主机
- 在终端运行“
sudo vi /etc/apache2/httpd.conf
”,打开Apche的配置文件(Vi http://dsec.pku.edu.cn/~jinlong/vi/Vi.html ) - 在httpd.conf中找到“
#Include /private/etc/apache2/extra/httpd-vhosts.conf
”,去掉前面的“#
”,保存并退出。 - 运行“
sudo apachectl restart
”,重启Apache后就开启了虚拟主机配置功能。 - 运行“
sudo vi /etc/apache2/extra/httpd-vhosts.conf
”,就打开了配置虚拟主机文件httpd-vhost.conf,配置虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机:<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/docs/dummy-host.example.com" ServerName dummy-host.example.com ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log" CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/usr/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log" CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common </VirtualHost>
而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示:
Forbidden You don't have permission to access /index.php on this server
最简单的办法就是在它们每行前面加上#,注释掉就好了,这样既能参考又不导致其他问题。
- 增加如下配置
<VirtualHost *:80> DocumentRoot "/Library/WebServer/Documents" ServerName localhost ErrorLog "/private/var/log/apache2/localhost-error_log" CustomLog "/private/var/log/apache2/localhost-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "/Users/snandy/work" ServerName mysites ErrorLog "/private/var/log/apache2/sites-error_log" CustomLog "/private/var/log/apache2/sites-access_log" common <Directory /> Options Indexes FollowSymLinks MultiViews AllowOverride None Order deny,allow Allow from all </Directory> </VirtualHost>
保存退出,并重启Apache。
- 运行“
sudo vi /etc/hosts
”,打开hosts配置文件,加入"127.0.0.1 mysites
",这样就可以配置完成sites虚拟主机了,可以访问“http://mysites”了。
三、安装MySQL
MySql官网下MySQL classic版mysql-xxxx.tar.gzhttp://dev.mysql.com/downloads/mysql/
记住得是64位的。因为mac下的python是64位,32位的mysql没法在python中用。
下载之后解压,然后在terminal里敲命令:
$ sudo mv mysql-5.1.45-osx10.6-x86_64 /usr/local/mysql
$ cd /usr/local
$ sudo chown -R mysql:mysql mysql
递归地添加mysql目录下的所有文件给mysql组的mysql用户
$ cd mysql
$ sudo scripts/mysql_install_db --user=mysql
以mysql用户的身份建立数据表
$ sudo chown -R root .
将mysql的主目录的属主设为root用户
$ sudo chown -R mysql data
将data目录的属主设为mysql用户
然后cd bin用$ sudo ./mysql_secure_installation
来修改root密码,默认回车为空,显然不太安全,然后根据提示酌情配置,因为是开发环境不用那么严格限制。
对于某些版本,如果有提示mysql/bin不在$PATH变量中,则需要将该路径添加到环境变量。具体方法参见:Mac OS X添加PATH环境变量
如果对某些版本提示输入当前密码,输入错误,请参考以下地址,重置密码:http://www.debian-administration.org/articles/442
$ sudo ./mysqld_safe &
用于启动mysql,当然加上nohup命令更好
$ sudo ./mysql -u root -p
输入刚才设置的root密码来登录mysql
$ sudo ./mysqladmin -u root -p shutdown
正确的停止mysql方法
四、升级Mavericks后parallels8无法运行的解决办法:
打开终端,输入
cd /Applications/Parallels\ Desktop.app/Contents/Library/Extensions/10.6
sudo kextutil *
五、OpenCV
1).首先下载opencv for mac安装源文件,http://opencv.org/downloads.html,解压缩
2).安装cmake:brew install cmake
3). 进入存放解压后的opencv文件夹,进入该文件夹,编译安装opencv,使用命令如下:
cd OpenCV-2.4.3
cmake -G "Unix Makefiles" ..
make
sudo make install
安装好的lib文件存放在“/usr/local/lib”文件夹,h文件存放在“/usr/local/include”
Eclipse配置OpenCV:
1.安装带有CDT的Eclipse,使用eclipse建立一个Mac C++工程,包含一个cpp文件
2.右击工程名, 选择“Properties”,在属性配置页中选择,点击C/C++ Build, 在下拉选项中选择 Settings. 在右边的选项卡中选择 Tool Settings
3. 在GCC C++ Compiler选项列表中选择Includes,在Include paths(-l)中添加安装好的opencv的头文件存放目录:/usr/local/include/(注意最后面的/不能少)
4.在MacOS X C++Linker选项列表中选择Library,在Library search path (-L)中添加安装好的opencv Lib文件存放目录:/usr/local/lib/
5.MacOS X C++Linker选项列表中选择Library, 在Libraries(-l) 中依次点击“+”号,添加需要使用的Lib文件(通常情况下,使用前三个):
#include <cstdio> #include "highgui.h" using namespace cv; int main() { char* imagename = "/Users/pcforsong/Desktop/head.png"; Mat img = imread(imagename); if(img.empty()) return -1; //是否加载成功 namedWindow("图片", CV_WINDOW_AUTOSIZE); imshow("图片", img); waitKey(50000); return 0; }