移植GAlib2.4.7到Visual Studio 2008

本文详细介绍了如何将GAlib遗传算法库移植到C++项目中,并提供了移植步骤和注意事项,包括文件修改、工程属性设置、源文件与头文件的引入、编译过程中的错误解决以及最终的测试验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GAlib是什么?

“GAlib contains a set of C++ genetic algorithm objects. The library includes tools for using genetic algorithms to do optimization in any C++ program using any representation and genetic operators. The documentation includes an extensive overview of how to implement a genetic algorithm as well as examples illustrating customizations to the GAlib classes.”

from http://lancet.mit.edu/ga/

=====================================================================================

如果你找到本篇文章,并想移植GAlib,这时候你应该对GA-Genetic Algorithms,即遗传算法有一定了解了,这里就不介绍了。

=====================================================================================


移植步骤:

Step 1.将"..\galib247\ga"中的源文件文件名后缀由“ .C ”修改成“ .cpp ”


Step 2.创建Win32控制台应用程序并选择空项目,设置个项目名字,如本文采用GALIB_original or GAlib247 whatever~



Step 3.源文件中添加"..\galib247\ga\*.cpp"文件,在头文件中添加"..\galib247\ga\*.h"文件


Step 4.设置工程属性★★★★★

常规(“配置属性”->“常规”)

        配置类型 = 应用程序.exe

       公共语言运行时支持 = 无公共语言运行时支持(这是默认选项)


C/C++->常规(“配置属性”->“ C/C++ ”->“常规”)

       附加包含目录 = .. 


本文的工程名字是:GALIB_original 

C/C++->预处理器(“配置属性”->“ C/C++ ”->“预处理器”)

       预处理器定义 = _CRT_SECURE_NO_DEPRECATE; COMPILE_GALIB_AS_LIB (这2个预处理器符号可以在makevars.vcpp中找到)



C/C++->预编译头(“配置属性”->“ C/C++ ”->“预编译头”)

      创建/使用预编译头 = 不使用预编译头(这是默认选项)


C/C++->高级(“配置属性”->“ C/C++ ”->“高级”)

      编译为 = 编译为C++代码/TP   



Step 5.编译,文件未找到错误错。

由于我们在Step 1中,对文件进行了改名(将.C改名为.cpp),我们同样需要将源码中include的源文件改名。在vc2008 IDE中,选择“编辑”菜单->“查找和替换”->“在文件中替换”,根据下表中的内容进行替换,报错之后,双击错误一个一个改过来就好了。

Original Text(要替换的文本) New Text(替换后的文本)
<ga/gatree.c> <ga/gatree.cpp>
<ga/gaallele.c> <ga/gaallele.cpp>
<ga/galist.c> <ga/galist.cpp>
<ga/gatreegenome.c> <ga/gatreegenome.cpp>
<ga/ga1darraygenome.c> <ga/ga1darraygenome.cpp>
<ga/ga3darraygenome.c> <ga/ga3darraygenome.cpp>
<ga/ga2darraygenome.c> <ga/ga2darraygenome.cpp>
<ga/galistgenome.c> <ga/galistgenome.cpp>

Step 6. 测试,新建main.cpp,并将“..\galib247\examples\ex1.C”中的内容复制过来即可。


编译-->运行-->结果

(注意:在return处设置个断点,不然就闪过去了)



工程代码

Good Luck~~~

参考:http://www.cisco-club.com.cn/space-167847-do-blog-id-7957.html

GAlib Homepage


评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值