eclipse不仅可以开发java,下载使用cdt插件也可以开发c++,并且效果良好(为什么使用eclipse,应为免费,讲真目前还挺好用的)。以mysql数据库访问为案例,搭建开发环境,过程中遇到了一些问题,通过百度和自己尝试,终于解决了,甚慰。
下载官方的c++ connector,但是其header文件路径不较深,也不在标准的访问头文件夹中。通过project->Properties->c++ build->setting可以在c++ complier下面的include菜单,加入文件夹路径,这样eclipse就能识别了。
开发c/c++,就涉及到compiler和linker的概念,这在ide中就有体现,其编译链接运行都有命令行的,只是ide帮我们做了。其中在project->Properties->c++ build->setting->linker中有一个shared library勾选框,当时不明白就选了,在运行时提示没有binary code,看了代码没有可以运行的标志,并且应用名多了lib前缀,后来我明白了这是生成库的选项。开发app时不选。
然后运行时又报no iamge。我就很纳闷了,linker已经没问题了啊。百度发现是动态库的问题,run->run configuration->environment,macos中的动态库后缀名叫.dylib,与linux的so后缀名以后差别。加入环境变量DYLD_LIBRARY_PATH,有尝试过完整路径,发现不对,运行时报错,发现文件名重复。原来DYLD_LIBRARY_PATH是一个文件夹名,运行时可以自动匹配文件夹下的动态库。
经过以上尝试,一套开发环境搭起来了,开发就很顺畅了。
--------------------------------------------------------------------
对于c++开发来说,需要手动管理c++库,比如boost,fmt,folly等,并且各个库之间可能存在依赖关系。在库依赖关系中,我们可以点开库文件的依赖头,一般来说。库依赖主要是头文件,编译好的源码不包含,需要用户手动下载安装。然后看库文件有没有被安装,比如boost,去默认的仓库看一下就可以了,比如/usr/local/lib, usr/lib等。
在使用shell脚本安装库的时候,总是会把我已经安装的库卸掉重装,比较无语,比如:
/usr/local/Cellar/boost/1.72.0: 14,466 files, 556.3MB Removing: /usr/local/Cellar/boost/1.71.0... (14,377 files, 521.8MB) Removing: /Users/yongli/Library/Caches/Homebrew/boost--1.71.0.tar.bz2... (95.5MB)
所以还是使用CMakeList.txt,cmake方式安装好一点。
Error: Running Homebrew as root is extremely dangerous and no longer supported.
+ TOP_LEVEL_DIR=/Users/yongli/Downloads/folly
+ cd /Users/yongli/Downloads/folly
在哪个目录下编译就以哪个目录为准,有点坑爹啊。