1. 首页
  2. 设置

设置编译器函数

本文主要为您介绍设置编译器函数,内容包括vc++6.0有没有办法设置编译器:把某个函数的代码编译进一个搜,c++的自定义函数设置,gcc下如何编译自定义函数。1. 安装单独安装、和MATLAB同时安装。2. 设置(以vs2005为例)>> mbuild -setupPlease choose

1.MATLAB中如何设置编译器

1. 安装

单独安装、和MATLAB同时安装。

2. 设置(以vs2005为例)

>> mbuild -setup

Please choose your compiler for building standalone MATLAB applications:

Would you like mbuild to locate installed compilers [y]/n? y

Select a compiler:

[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2010a\sys\lcc

[2] Microsoft Visual C++ 2008 SP1 in D:\Program Files\Microsoft Visual Studio 9.0

[3] Microsoft Visual C++ 2005 SP1 in C:\Program Files\Microsoft Visual Studio 8

[0] None

Compiler: 3

Please verify your choices:

Compiler: Microsoft Visual C++ 2005 SP1

Location: C:\Program Files\Microsoft Visual Studio 8

Are these correct [y]/n?

Trying to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2010a\compopts.bat

From template: D:\PROGRA~1\MATLAB\R2010a\bin\win32\mbuildopts\msvc80compp.bat

Done . . .

3. 使用

(1)在 MATLAB 环境中使用 mcc 命令;

(2)在系统命令环境中使用 mcc.exe (在Windows上);

(3)在 MATLAB 环境中使用 Deployment Tool。

4. 程序发布

(1)使用 MATLAB 命令 builder;

(2)使用 Deployment Tool 图形化工具。

一般来说,需要发布的文件有3个:

(1)编译得到的可执行文件或库函数;

(2)CTF 文件;

(3)MCRInstaller.zip。

在最终用户的计算机上,首先需要把MCRInstaller.zip 解压,并把 MCR 中可执行文件所在目录添加到系统路径上,然后就可以使用编译后的程序了。

2.怎么对mathtype公式编辑器进行设置

MathType 数学公式编辑器)是一个强大的数学公式编辑器,与常见的文字处理软件和演示程序配合使用,能够在各种文档中加入复杂的数学公式和符号,支持 OLE (对象的链接与嵌入),可以在任何支持 OLE 的文字处理系统中调用 (从主菜单中选择 "插入->;对象" 在新对象中选择 "MathType Equation" ),帮助用户快速建立专业化的数学技术文档。

使用Mathtype公式编辑器编辑公式的时候,可能会觉得上下标的过小,或者是过大,在word中不知道怎样改变其大小,下面的经验带给大家如何在Mathtype公式编辑器编辑中,改变上下标的大小。

1、在桌面上打开Mathtype公式编辑器,或者进入“开始”,所有程序中,打开Mathtype公式编辑器。

2、进入Mathtype公式编辑器之后,进行公示编辑,如果只是改变单个的上小标的大小,这里继续,如果是改变所有的,看下方的。

3、公示编辑完毕,选中需要改变大小的上下标。

4、选中需要改变的上下标之后,点击上方菜单栏的“大小(s)”。

5、在“大小(s)”栏目下,如果是想变大,点击选择“较大”。

6、这时候上下标就改变大小了。

7、如果是想变小,选中上小标,点击“大小”,然后点击“较小”。

8、当然,如果想直接设置为一个固定的比例大小,不不需要像这样一个个地改变,点击“大小”,然后点击“限定”。

9、这里就可以进行上小标的大小限定,根据自己的喜好,设置上下标的相对大小,设置完毕,点击“确定”即可。

3.C编译器编译过的函数怎样在C++中使用

本人以前的学习笔记(在网上找的):看了后,你一定可以解决15.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。

通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。

这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;它会在连接阶段中从模块A编译生成的目标代码中找到此函数 extern "C"是连接申明(linkage declaration),被extern "C"修饰的变量和函数是按照C语言方式编译和连接的,来看看C++中对类似C的函数是怎样编译的: 作为一种面向对象的语言,C++支持函数重载,而过程式语言C则不支持。函数被C++编译后在符号库中的名字与C语言的不同。

例如,假设某个函数的原型为: void foo( int x, int y ); 该函数被C编译器编译后在符号库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字称为“mangled name”)。_foo_int_int这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的。

例如,在C++中,函数void foo( int x, int y )与void foo( int x, float y )编译生成的符号是不相同的,后者为_foo_int_float。同样地,C++中的变量除支持局部变量外,还支持类成员变量和全局变量。

用户所编写程序的类成员变量可能与全局变量同名,我们以"."来区分。而本质上,编译器在进行编译时,与函数的处理相似,也为类中的变量取了一个独一无二的名字,这个名字与用户程序中同名的全局变量名字不同。

未加extern "C"声明时的连接方式 假设在C++中,模块A的头文件如下:// 模块A头文件 moduleA.h#ifndef MODULE_A_H#define MODULE_A_H int foo( int x, int y );#endif 在模块B中引用该函数:// 模块B实现文件 moduleB.cpp #i nclude "moduleA.h" foo(2,3); 实际上,在连接阶段,连接器会从模块A生成的目标文件moduleA.obj中寻找_foo_int_int这样的符号!加extern "C"声明后的编译和连接方式 加extern "C"声明后,模块A的头文件变为:// 模块A头文件 moduleA.h#ifndef MODULE_A_H#define MODULE_A_H extern "C" int foo( int x, int y );#endif 在模块B的实现文件中仍然调用foo( 2,3 ),其结果是:(1)模块A编译生成foo的目标代码时,没有对其名字进行特殊处理,采用了C语言的方式;(2)连接器在为模块B的目标代码寻找foo(2,3)调用时,寻找的是未经修改的符号名_foo。如果在模块A中函数声明了foo为extern "C"类型,而模块B中包含的是extern int foo( int x, int y ) ,则模块B找不到模块A中的函数;反之亦然。

所以,可以用一句话概括extern “C”这个声明的真实目的(任何语言中的任何语法特性的诞生都不是随意而为的,来源于真实世界的需求驱动。我们在思考问题时,不能只停留在这个语言是怎么做的,还要问一问它为什么要这么做,动机是什么,这样我们可以更深入地理解许多问题):实现C++与C及其它语言的混合编程。

明白了C++中extern "C"的设立动机,我们下面来具体分析extern "C"通常的使用技巧:extern "C"的惯用法 (1)在C++中引用C语言中的函数和变量,在包含C语言头文件(假设为cExample.h)时,需进行下列处理:extern "C" { #i nclude "cExample.h" } 而在C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern "C"声明,在.c文件中包含了extern "C"时会出现编译语法错误。C++引用C函数例子工程中包含的三个文件的源代码如下:/* c语言头文件:cExample.h */#ifndef C_EXAMPLE_H#define C_EXAMPLE_H extern int add(int x,int y);#endif/* c语言实现文件:cExample.c */ #i nclude "cExample.h" int add( int x, int y ) { return x + y; }// c++实现文件,调用add:cppFile.cpp extern "C" { #i nclude "cExample.h" } int main(int argc, char* argv[]) { add(2,3); return 0; } 如果C++调用一个C语言编写的.DLL时,当包括.DLL的头文件或声明接口函数时,应加extern "C" { }。

(2)在C中引用C++语言中的函数和变量时,C++的头文件需添加extern "C",但是在C语言中不能直接引用声明了extern "C"的该头文件,应该仅将C文件中将C++中定义的extern "C"函数声明为extern类型。C引用C++函数例子工程中包含的三个文件的源代码如下://C++头文件 cppExample.h#ifndef CPP_EXAMPLE_H#define CPP_EXAMPLE_H extern "C" int add( int x, int y );#endif//C++实现文件 cppExample.cpp #i nclude "cppExample.h" int add( int x, int y ) { return x + y; }/* C实现文件 cFile.c/* 这样会编译出错:#i nclude "cExample.h" */ extern int add( int x, int y ); int main( int argc, char* argv[] ) { add( 2, 3 ); return 0; }15题目的。

4.C++类里面编译器默认生成的函数有哪几个

定义一个空的C++类,例如

class Empty

{

}

一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于

class Empty

{

public:

Empty(); // 缺省构造函数

Empty( const Empty&; ); // 拷贝构造函数

~Empty(); // 析构函数

Empty& operator=( const Empty&; ); // 赋值运算符

Empty* operator&;(); // 取址运算符

const Empty* operator&() const; // 取址运算符 const

};

一般的书上好像都是前面四种:默认构造函数,拷贝构造函数,默认赋值函数以及析构函数,后面两种其实属于,但要需要注意的是,只有当你需要用到这些函数的时候,编译器才会去定义它们。

如果你只是声明一个空类,不做任何事情的话,编译器会自动为你生成一个默认构造函数、一个拷贝默认构造函数、一个默认拷贝赋值操作符和一个默认析构函数。这些函数只有在第一次被调用时,才会别编译器创建。所有这些函数都是inline和public的。

出处:、

5.word文档如何设置/编辑公式

方法如下:

1、打开word;

2、点击插入->公式;

3、选择需要的公式插入;

4、插入后中,单击公式,就可以进入编辑模式,根据自己的需求对公式进行修改。

6.C++中编译时遇到函数的定义,编译器做了哪些事,

void *token = (void*)(myFunc->,因为类的实例释放时不会通知到token已失效。

你可能断章取义了。对于c语言; int minus(int;-这样写是可以的, int); /,因为类是一个结构性声明: int add(int; /:add)。

总之不提倡;}等于static int add(int a;add)。”这样还差不多,在没有实例化以前:add,类成员函数;-只有很少量的编译器支持这种方式的地址;/,你的理解问题不大,否则无法在编译器阶段获取地址;}。

我猜猜看:class CFunction {public;-这样写是错误的;/ <:int add(int a;-这样是可以的;void * token = (void*)&(CFun,应该是说“在类的声明中;/,由于是和“实例(instance)“捆绑在一起的,由于定义函数时编译器; /哦; 追问: 我现在迷惑的是,对C++编译器来说,遇到哪些东西的定义会分配内存,如果说在编译时期就分配内存,那最后生成的EXE文件运行,又怎么分配内存;遇到函数的定义,编译时是否必定生成代码在代码段,当遇到该函数调用时,再取这段代码段内容,如果这样的话,怎么又说定义函数时引用修饰符“&”不起作用(不是特指类中的成员函数,就是一般情况。已经困惑很久,我还是菜鸟,希望还能讲细点 追答: 呵呵,只要是定义的东西肯定都分配内存的,但是静态分配还是动态分配,就不单单是编译器的问题了,还要看操作系统。

EXE文件只是一张为计算机运行程序时提供的特殊的“图纸”,你可以这样理解,这张图纸告诉计算机的CPU,代码段总共有多大,数据段总共有多大,堆栈段是怎么安排的,而已。在DOS时代,你必须要亲自考虑这些事情,因为可分配的内存是非常紧张而有限的。

比如,我玩DOS 6.22时,必须用Turbo C一点一点考虑已经分配的内存是否超过512KB,也就是0.5MB。在WINDOWS / LINUX / MAC OS X 时代,大家很少去考虑这些事情,因为操作系统已经把这个事情大包大揽了,你只需要了解如果用new或者malloc分配地址时,如果返回为空,表示内存已经不足,即可。

WIN7 和 FEDORA / LION 直接支持的内存已经达到8GB或者更多(WIN XP仅能支持3GB)。比C++更先进的下一代语言,比如C#、JAVA、Object C(如果你希望在你的iPhone手机上编写比愤怒的小鸟更彪悍的程序),甚至干脆取消了对函数指针的直接管理,改为“引用”(可以理解为一种非常安全的指针),因为往往操作系统在提供库函数的时候,干脆提供的是类似DLL/ ACTIVE X这样的动态链接库,编译器的工作已经退化为“对内存的申请”,而不是“对内存的管理”。

更先进的处理方法是,在云计算时代,你的函数运行时,可能指向的是某个网络上的节点计算机提供的运算服务。所以说来说去,既然不需要关心的事情,那么在编程时就不需要去关心。

面对对象的语种:Visual Basic .net /C#/Object - C,其精髓在于对象、实例、消息、界面、属性和方法,这一点,和C语言时代、处于过渡阶段的C++来说,与结构、函数、变量的区别非常大。在苹果公司的xcode 4.2 object C编程环境中,甚至不需要进行代码编写,只需要用界面工具将各个控件的关系用特殊方法关联起来,就可以形成新的应用程序;“面对对象的编程”,你只需要关心某个对象的某个实例在接到某个消息后处理某个特殊的事件即可,不再需要通篇考虑整个应用程序的程序代码组织。

举个例子,如同一块电路板,古典的方法是用很多的电线去连接各个部件;新的方法使用集成电路,所有芯片都采用了标准的电气针脚和连接方法,你需要做的,仅仅是升级某个部件的内容,而不要因为某个新需要的功能而重新在几个管脚之间增加飞线。这种“飞线”就如同“函数指针”,是在面对对象编程里竭力避免的。

如有特殊需要,必须对照这个特殊函数的使用手册。 评论0 4 0。

设置编译器函数

本文来自投稿,不代表本站立场,如若转载,请注明出处。