常见问题解答

  • 问:如何协助你们解决我遇到的问题?
    答:
    首先你需要确定正在使用的是最新的稳定版本,因为你的问题可能已经在最新版本中得到了修正。
    另外为了便于我们查找问题的原因,请提供以下详细信息:
    1 使用后台源代码进行编译
    2 按照文档编译通过后,使用--debug 参数以调试模式启动
    参考文档说明的方法,尝试问题所在的操作,如果失败,把dup/dup.log 发给我们
    3 将Magic C++ IDE的View/Output/Debug信息栏输出的信息也发给我们
    4 任何问题都需要告诉我们:服务器操作系统类型及版本、编译器类型及版本、调试器类型及版本、客户机操作系统类型及版本 我们会根据这些输出信息进行查错的。
  • 问: Magic C++是商业软件还是共享软件?
    答:
    Magic C++ for Linux/FreeBSD是共享软件,您可以下载并试用。如果在试用45天之后希望继续使用,您需要进行注册。成为Magic C++的注册用户,您可以享受完善的技术支持和优惠的软件升级服务。Magic C++ for Unix是商业软件,由于各大厂商的Unix操作系统在shell环境、编译器、调试器等方面的差异较大而导致安装复杂,需要技术人员现场定制安装,恕不提供下载试用,为了更好地向您提供服务,敬请直接联系我们垂询相关产品信息。您也可以通过下载并试用Magic C++ for Linux/FreeBSD来感受Magic C++系列产品的功能和特性以确定是否需要最终购买Magic C++ for Unix。
  • 问: Magic C++是否支持Linux/FreeBSD之外的其它操作系统?

答:
Magic C++支持所有主流的Unix/Linux操作系统,包括IBM AIX、HP HP-UX、Sun Solaris、SCO Unix、Linux、FreeBSD,更多的操作系统将在未来得到支持。Magic C++有着良好的可扩展性,可以根据您的需要进行扩展以支持其它的操作系统,比如嵌入式操作系统。

  • 问: 我重新安装Magic C++后,原来的服务器配置信息都丢失了,为什么?

答:
这是因为你使用了先卸载然后再次重新安装的方法,所以原来的服务器配置信息都丢失了。
为了保留原来的服务器配置信息,应该在安装界面出现后,应该使用"repair"即可升级或者修复。

  • 问:在Magic C++中,远程登陆服务器的用户名和密码如何设置?

    答:
    有两种鉴权模式:
    一种是采用服务器操作系统的鉴权,直接使用服务器上的telnet 用户名与密码进行设置。 这种模式需要用root用户启动magicd。

    另外一种是使用Magic C++集成的鉴权,此时需要自行配置用户名与密码, ./magicd -a 用户名,密码即可
  • 问:启动后台服务进程时报告错误Can't bind local address...,如何解决?

答:
换一个端口来启动后台服务进程就可以了。
比如使用2005端口来启动后台服务
magicd -p 2005
***注意***Magic C++ IDE里的服务器设置也需要同时修改才可以正常工作。

  • 问:如何检验Magic C++的服务进程工作正常?

答:
请先确保客户机能够正常的通过FTP、TELNET协议与服务器进行通信。

有两种检验方法:

一种是使用Magic C++ IDE进行校验
启动Magic C++ IDE,创建并设置服务器配置
设置远程登录的用户名/密码,使用Remote Development Authentication->Test进行测试
设置ftp的用户名/密码,使用Ftp Authentication->Test进行测试

另一种是命令行手工测试:

使用telnet工具连接到Magic C++服务进程工作的端口,如telnet IP地址 2004, 根据提示输入用户名/密码进行测试使用ftp工具连接到ftp端口,如ftp IP地址,根据提示输入用户名/密码进行测试

  • 问: 有时在启动调试时显示start debugger error错误,为什么?.

答:
可能是以下原因导致:
(1)端口设置错误。请检查Remote Server Manager/Server Property/Advance/Redirection Terminal Settings/Telnet port是否正确设置为telnet服务侦听端口(缺省端口为23)。
注意,以下情况例外:如果Magic C++服务器端组件-远程开发代理(RDA)不是以超级用户(通常是root)启动及工作,此时无法调用操作系统提供的登录鉴权功能,必须使用Magic C++提供的登录鉴权功能才可以正常登录远程服务器,请检查是否正确设置为远程开发代理(RDA)服务侦听端口(缺省端口为2004)
(2)服务器上的telnet服务工作不正常
(3)一些特殊用户被禁止远程登录,比如root
(4)该用户已经达到最大连接数的限制,无法建立新的连接
(5)网络繁忙以及服务器超负荷工作时将可能导致连接超时错误

  • 问:Linux下没有启用密码SHADOW校验引起的连接服务器失败问题,如何解决?

答:
因为Magic C++的登录校验程序使用了SHADOW进行校验。如果安装LINUX的时候如果没有启用SHADOW密码校验,将会导致连接服务器失败问题。 解决办法:下载最新版本的后台服务器源码按照以下步骤重新编译。
1./configure
2./configure 以后,检查src/Makefile 文件,看里面的DEFS 中有没有定义HAVE_SHADOW_H宏。如果有,注释掉它!
3 make
4 make install
(其它按照源码安装手册进行)

  • 问:服务器端禁止root远程登陆引起的连接失败问题,如何解决?

答:
解决的办法:
如果服务器是linux:
/etc/pam.d/login 文件把第一行打上#
如果服务器是FreeBSD:
设置root方法如下
打开/etc/ttys 文件,看到
# Pseudo terminals(伪终端)的字样
缺省是这样
ttyp0 none network
把所有的伪终端都改成这样
ttyp0 none network off secure

  • 问:Magic C++在IBM AIX平台下不能正常工作,如何解决?

答:
在IBM平台下,必须打开源码包中的src/config.h 文件,将#define SHORT_IAC注释掉,然后再编译,才可以正常工作.

  • 问:Magic C++支持对多线程、多进程的调试吗?

答:
Magic C++支持多线程、多进程的调试。
多线程程序的调试在一个Magic C++ IDE里就可以完成了;
多进程程序的调试,需要启动多个Magic C++ IDE实例并结合attach命令进行;
需要注意unix/linux下的调试器(gdb、dbx等)并没有针对多线程调试提供非常强大和完整的调试命令。

  • 问:用于生成Makefile的模板在什么地方,可以手工进行修改吗?

答:
Makefile的模板在Magic C++的安装目录\templates\make\makefile,你可以直接修改这个模块以满足自己的需要。

  • 问:Magic C++的编译、调试功能是如何实现的?

答:
Magic C++具备远程编译和调试功能,但是软件包中并不包括编译器和调试器,而是通过RDP(远程开发协议)无缝集成所有主流Unix/Linux服务器下的编译器、调试器来完成这些功能的。即通过RDP协议在远程服务器上执行编译、调试命令,对命令输出信息进行解析,以图形化的方式通过前台IDE界面来展现给开发人员。

  • 问:因为是基于telnet/ftp的远程操作,那么Magic C++的速度如何?

答:
Magic C++的整体速度是非常快的。
只有当第一次进行telnet 连接时,由于登陆远程服务器时需要校验用户名/密码,所以会有些延时,此后的所有远程操作的速度都是很快的。
为了提高文件打开的速度,第一次打开远程工程后,会在本地创建镜像文件,第二次再次打开同样的工程时,如果文件没有被修改,则直接读入本地镜像,提高了文件读取的速度。

  • 问: 在编辑源代码时,有时自动提示和自动代码补齐没有工作,为什么?

答:
(1) 声明不正确
例如:
class CTest
{
// ...
};

class CMain
{
int funcA();
};

int CMain::funcB()
{
CTest a;
a.
// 自动提示无法正常工作,因为funcB()没有声明
}

(2) 代码错误
例如:
int CMain::funcA()
{
CTest a
....
a.
// 自动提示无法正常工作,因为代码存在错误,语句"CTest a"没有正常结束(结束处缺少分号)
}

 

Back to Top