English
   

    常见问题解答

    常规

    操作系统

    安装

    服务器端

    连接

    编辑器

    编译器

    调试器

    HTML格式Man手册查看

问:如何协助你们解决我遇到的问题?
答:
首先你需要确定正在使用的是最新的稳定版本,因为你的问题可能已经在最新版本中得到了修正。
另外为了便于我们查找问题的原因,请提供以下详细信息:
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"即可升级或者修复。

问: 执行./configure命令后出现“Check your system clock“错误是什么原因?
答:
这是因为您下载的后台服务器源码包比系统时间新,导致检测错误。清在解压后的目录/path/to/magicd-3.0.0下输入命令'touch *',然后再次执行./configure 操作。

问:在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地址,根据提示输入用户名/密码进行测试

问: 如何解决启动调试时的Enum updated file failed问题?
答:

如果使用的shell类型是bash,请将环境变量 PROMPT_COMMAND 设置为空,如下:
==============
BASH=/bin/bash
PROMPT_COMMAND=
PS1='[\u@\h \W]\$ '
=============

修改后需要重新启动magicd以生效。

以下几种不常见的命令行提示符也可能会导致该问题。请检查一下用户环境中的命令行提示符,正常的格式如下:
[mc@linux90 mc]#
而以下几种命令行提示符Magic C++暂不支持,可能会导致无法正常工作
*命令行提示符为多行文本(含有换行符)
*命令行提示符为彩色文本
*命令行提示符中含有命令的计数器或时间信息,导致每次执行命令后命令行提示符均会发生变化
如果确定是因此而导致的问题,请重新设置命令行提示符为Magic C++支持的正常格式。

这个问题也可能是由于非正常启动后台服务进程magicd而导致的,请注意以下事项:
(1)不要从x-window桌面下的终端窗口启动magicd
(2)不要使用putty.exe的SSH协议开启的终端窗口启动magicd,请使用windows自带的cmd.exe的TELNET协议开启的终端窗口启动magicd,或者使用putty.exe之外的其他工具

问: 如何解决启动调试重定向终端失败的问题?
答:
当Magic C++发生如下启动调试器重定向终端失败的问题时,
Connecting to server Slackware ...OK.
Starting debugger...OK.
Starting debug redirection terminal...failed!
请按照以下步骤提供更详细的资料给我们,以便我们确定故障的原因:
 
(1)调用脚本停止运行中的后台服务magicd,如下:
./killit.sh
 
(2)使用--debug 参数以调试模式重新启动后台服务magicd,如下:
./magicd --debug
 
(3)在Magic C++ IDE里的File->Romote Server Manager->Server Property->Advance里
将Telnet port修改设置为后台服务magicd的侦听端口,如2004
 
(4) 打开一个存在的工程,尝试执行Tools/Run Terminal进行连接,看看执行的结果是否成功,如果失败了,请把后台服务magicd的日志文件dup/dup.log发给我们. 我们将会根据dup.log来确定问题产生的原因并尽快给予答复。

问: 有时在启动调试时显示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:
方法1. 在redhat中对于远程login的限制,体现在/etc/pam.d/login文件中,缺省有一行:
     auth required /lib/security/pam_security.so
     注释该行,任何限制都没有,root当然可以直接telnet登陆。
方法2. 如果不注释该行,则必须验证,我们删除验证规则,即将/etc/securetty文件改名,
     该文件是定义root只能在tty1~tty6的终端上登录的,详细的信息可以"man login"。
方法3. 如果不注释该行,则必须验证,我们更改验证规则,即在/etc/securetty文件中添加下列行:
     pts/1
     pts/2
     .
     pts/11

如果服务器是FreeBSD:
设置root方法如下
打开/etc/ttys 文件,看到
# Pseudo terminals(伪终端)的字样
缺省是这样
ttyp0 none network

把所有的伪终端都改成这样
ttyp0 none network off secure

如果服务器是Sun Solaris
对于Solaris系统,限制体现在/etc/default/login文件中,如果有"CONSOLE=/dev/console" 一行,则root不能直接登陆,如果注释掉该行,则root可以直接登陆。

问: telnet连接总是因为空闲一段时间而被服务器断开,如何修改这个空闲时长的设置呢?
答:
修改文件 /etc/default/login
# TIMEOUT sets the number of seconds (between 0 and 900) to wait before
# abandoning a login session.
#
#TIMEOUT=300
修改之后不是立即生效,在这之后所有的login session都符合这个要求,但是在修改之前已经建立的连接不受影响。

问:Magic C++在IBM AIX平台下不能正常工作,如何解决?
答:
在IBM平台下,必须打开源码包中的src/config.h 文件,将#define SHORT_IAC注释掉,然后再编译,才可以正常工作.

问:Magic C++支持HP Tru64 Unix吗?
答:
Magic C++对HP Tru64 Unix不支持调试功能,如果希望使用Magic C++的完整功能,请先安装GNU GCC for HP Tru64 Unix,点击这里查看安装方法。如果需要针对HP Tru64 Unix平台进行定制敬请直接联系marketing@magicunix.com

问:Fedora Core 3下的Get master pty failed错误如何解决?
答:
(1)
# ./configure
(2)
在src/Makefile文件中找到 DEFS= 语句,在其后添加 -DHAVE_OPENPTY=1 的宏开关
找到 LIBS= 语句,在其后添加 -lutil 的库链接

(3)
# make clean && make
(4)
# make install

问:FreeBSD下的连接测试失败的问题如何解决?
答:
对于Freebsd系统,需要使用gmake 来编译安装后台服务器代码;
另外用户的缺省SHELL请不要使用sh,而应该使用bash,csh,ksh等其它类型的shell
1 将gmake上传到服务器

2 解压,安装
tar -zxvf make-3.80.tar.gz
cd make-3.80
./configure

3 为了与原来的make 相区分,将其更名为gmake, 并copy 到/bin目录
mv make gmake
cp gmake /bin

4 输入gmake install

5 安装bash,将Freebsd第一张光盘放入CD-ROM,用命令
# sysinstall
来安装软件包
configure->packages->CD/DVD->shells->bash2.05b
6 #cp /usr/local/bin/bash /bin/bash
7 用命令
# chsh ken
将/bin/sh更改为/bin/bash

问:SCO Unix下如何安装后台服务?
答:
Magic C++支持SCO Unix,但是需要做以下工作:
1、上传magicd-2.5.0.tar.gz,解压并提取。
2、配置
# ./configure
......
config.status: creating etc/Makefile
config.status: creating doc/Makefile
config.status: creating thttpd/Makefile
config.status: creating yman2html/Makefile
config.status: executing depfiles commands
./configure[6880]: which: not found
Sorry, no Perl found in /bin:/etc:/usr/bin:/tcb/bin
忽略错误信息继续。
3、
因为SCO Unix不支持long long数据类型,所以需要将源代码中所有的'long long' 替换为 'long';

在源文件./thttpd/config.h中
增加语句
#define MAXPATHLEN 1024

在源文件./thttpd/libhttpd.c中
注释掉语句
case S_IFSOCK: modestr[0] = 's'; break;
变成
// case S_IFSOCK: modestr[0] = 's'; break;

注释掉语句
case S_IFSOCK: fileclass = "="; break;
变成
// case S_IFSOCK: fileclass = "="; break;
4、make
5、make install
6、注意:telnet的用户shell不能是sh,可以改为ksh或csh。

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



问:Magic C++支持GUI图形应用程序的开发吗?
答:
支持。
最新版本的Magic C++已经支持GUI图形应用的开发,详细方法请参考"如何使用Magic C++调试GUI图形应用程序"

问:用于生成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"没有正常结束(结束处缺少分号)
}

问: 为什么我在HP-UX,IBM AIX,Solaris等环境下无法查看html格式的man手册?

答:
(1) 您没有编译成功并启动http 服务器

请检查后台/path/to/thttpd/mchttpd是否存在(/path/to是您的magicd 后台守护进程的安装路径)

请检查mchttpd 是否运行并且开启的http端口(缺省值是2104)是否正常侦听

(2) 如果您可以连接后台http服务器,但是使用IDE查看man 文档时,浏览器没有显示man 的内容,而只是[ Index ] [ Back ] 形式页脚,请用超级用户登录后台服务器,输入'catman' 命令建立man 手册索引后,即可在IDE中浏览man 手册。

 

Back to Top

   
 
 

首页产品购买软件下载技术支持合作伙伴联系我们

版权所有©2004 迈思信息技术有限公司 保留所有权利