CodeBlocks综合设置

来源:互联网 发布:淘宝名为什么不能修改 编辑:程序博客网 时间:2024/06/05 15:30

(1).使用CodeBlocks生成Java JNI使用的dll

由于近期有项目要用到JNI,但用CodeBlocks生成的dll一直不能被Java调用,而Vs、Vc却可以,后来经过一番折腾,终于弄好了。原来JNI想要VC风格的函数声明,但是CodeBlocks默认的GCC编译器生成的是GCC风格的,所以需要用编译选项修改生成风格、指定链接参数,才能使生成的dll可以被Java成功调用。否则会报错误:

 

网上有两种参数模式,都测试在codeblocks,都能够生成供Java调用的dll

1-Wl,--kill-at

2-Wl,--add-stdcall-alias 

stdcall_cdecl是两种不同的函数调用约定,区别在函数参数入栈的顺序,由调用函数还是被调用函数将参数弹出栈,以及产生函数修饰名的方法。

jni使用的dll库函数默认使用stdcall调用约定,stdcall的调用约定意味着:

1.参数从右向左压入堆栈。

2.函数自身修改堆栈。

3.函数名自动加前导的下划线,后面紧跟一个@符号,其后紧跟着参数的尺寸。gcc编译的时候可能不使用stdcall百度说gcc默认是_cdecl约定,加上这个链接参数就可以了。

CB添加链接参数的位置在CodeBlocks的工程右键properties(属性) ->Build Targets(构建目标) ->Build Options(构建选项) -> Linker Setting(链接器设置) -> Other Linker Options(其它链接器选项) ,加入以上2种参数模式任意一种即可。

 

(2).使用CodeBlocks编译socket代码需要增加ws2_32.lib文件

在链接库中间增加如下路径,
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\ws2_32.lib"
连双引号都需要复制进去,否则会因为路径中间有空格报路径错误;

Code Blocks添加方法如下:

Settings --> Compiler --> Search directories --> Linker --> Add 按钮

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\
无需引号;

注意以下几点:

1. v6.0A 根据你电脑上的版本而定。

2. 64位的windows C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\ 可能在Program Files (x86)下。

3. 如果以上方法不行,直接将如下2个lib文件,拷贝到工程目录下。

  C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\WS2_32.LIB

  C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\WSOCK32.LIB

  之后添加下,即可。

4. 如上方法大部分都能解决,如果有的还解决不了,根据需要添加使用Code::Blocks写Socket Program的设定Settings ->Compiler ->Linker Settings ->Other linker options -> 加上-lws2_32即可。

(3).CodeBlocks格式化代码设置

可能大家在使用的时候,发现CodeBlocks选中代码后,然后右键Format use AStyle格式化代码不明显。默认的情况下,运算符号前后不会添加空格,比如a=23,不会格式化成a = 23CB格式化代码的设置在:Settings(设置)->Editor(编辑器)->source formatter(源码格式化),为了使代码看起来美观可读,我们作如下设置:

 

当然,你也可以根据个人爱好设置自己的代码风格。

(4).去除字符串下面的波浪线

CodeBlocks默认安装完成后,是有拼写检查的,这是因为新版CB自带拼写插件,我们把它禁用就好了。打开菜单:插件->管理插件,找到SpellChecker,选择禁用。

 

 

设置好了,试试这款免费开源跨平台的IDE吧,你会发现非常的好用。

0 0
原创粉丝点击