【发布时间】:2016-01-12 18:40:35
【问题描述】:
我正在使用 tcl.h 创建一个新的 TCL 命令,代码如下:
#include <tcl.h>
#include <iostream>
using namespace std;
int saludo (ClientData clientData,Tcl_Interp *interp, int argc,char *argv[])
{cout << "Hello World";}
int main(int argc, char *argv[]) {
Tcl_Interp *interp;
interp = Tcl_CreateInterp();
Tcl_CreateCommand(interp, "sal", saludo, ClientData(NULL), (Tcl_CmdDeleteProc *)NULL);
}
但我得到了错误>
[arch@myLinux tcl_interpreter]$ make
g++ -c -o interpreter.o interpreter.cc
interpreter.cc: In Funktion »int main(int, char**)«:
interpreter.cc:24:87: Fehler: ungültige Umwandlung von »const char (*)(ClientData, Tcl_Interp*, int, char**) {aka const char (*)(void*, Tcl_Interp*, int, char**)}« in »int (*)(ClientData, Tcl_Interp*, int, const char**) {aka int (*)(void*, Tcl_Interp*, int, const char**)}« [-fpermissive]
Tcl_CreateCommand(interp, "sal", saludo, ClientData(NULL), (Tcl_CmdDeleteProc *)NULL);
我知道这是 c 代码,我在命令行中使用 -fpermissive>
CC=gcc
CFLAGS=-c -Wall -fpermissive
但它似乎不起作用。我正在使用 gcc 5.2。
任何想法谢谢!
【问题讨论】: