加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 编译时出错::: strcmp尚未声明

发布时间:2020-12-14 00:34:22 所属栏目:Linux 来源:网络整理
导读:我正在使用一个名为supersense tagger的软件,我有一个粘贴在下面的makefile. #Makefile for sst-light CXX = g++ CFLAGS = -g -O1 -DPIC -fPIC -ILIB -I. CXXFLAGS = $(CFLAGS) -fno-exceptions #CXXFLAGS = -g #LIB = -lm ${TAO_LIB} ${PETSC_SNES_LIB} #in
我正在使用一个名为supersense tagger的软件,我有一个粘贴在下面的makefile.

#Makefile for sst-light

    CXX = g++
    CFLAGS = -g -O1 -DPIC -fPIC -ILIB -I.

    CXXFLAGS = $(CFLAGS) -fno-exceptions
    #CXXFLAGS = -g
    #LIB = -lm ${TAO_LIB} ${PETSC_SNES_LIB}
    #include ${TAO_DIR}/bmake/tao_common

    SOURCES = sst-light.cc 
LIB/utils/utils.cc 
LIB/stats/stats.cc 
LIB/results/results.cc 
LIB/evaluate/evaluate.cc 
LIB/Chain/Chain.cc  
LIB/Perceptron/Perceptron.cc  
LIB/tagger_light/Tlight.cc 
LIB/examples/examples.cc 
LIB/features/features.cc

    MLIBOBJECTS = LIB/utils/utils.o 
    LIB/stats/stats.o 
    LIB/results/results.o 
    LIB/evaluate/evaluate.o 
    LIB/Chain/Chain.o  
    LIB/Perceptron/Perceptron.o  
    LIB/tagger_light/Tlight.o 
    LIB/examples/examples.o 
LIB/features/features.o 


    OBJECTS = sst-light.o 
LIB/utils/utils.o 
LIB/stats/stats.o 
LIB/results/results.o 
LIB/evaluate/evaluate.o 
LIB/Chain/Chain.o  
LIB/Perceptron/Perceptron.o  
LIB/tagger_light/Tlight.o 
LIB/examples/examples.o 
LIB/features/features.o #
     #  /usr/local/WordNet-2.1/lib/libWN.a

    PEROBJ  = Perceptron/Perceptron.o  Perceptron/Kernel_Perceptron.o
    CRFOBJ  = CRF/CRF.o

    SuperSenseTagger: $(OBJECTS) 
        g++ $(OBJECTS) -o sst

    videotagger: $(MLIBOBJECTS) videotagger.o
      g++ $(MLIBOBJECTS) videotagger.o -o videotagger

    to-conll: to-conll.o
       g++ to-conll.o -o to-conll

    libwnss.so:     $(MLIBOBJECTS)
g++ -shared -o libwnss.so  $(MLIBOBJECTS) -lm -lpthread -lc -lstdc++ -lgcc_s

    .PHONY: clean

    clean:
      find . -name '*.[od]' -print -exec rm {} ;
    clean_bak:
      find . -name '*~' -print -exec rm {} ;

    # this command tells GNU make to look for dependencies in *.d files
    -include $(patsubst %.c,%.d,$(SOURCES:%.cc=%.d))

在执行时,我得到以下内容:

g++ -g -O1 -DPIC -fPIC -ILIB -I. -fno-exceptions   -c -o sst-light.o sst-light.cpp
In file included from /usr/include/c++/4.3/ext/hash_map:64,from LIB/examples/../tagger_light/../results/../utils/../hash_stuff/hash_stuff.h:26,from LIB/examples/../tagger_light/../results/../utils/utils.h:31,from LIB/examples/../tagger_light/../results/results.h:29,from LIB/examples/../tagger_light/Tlight.h:29,from LIB/examples/examples.h:19,from sst-light.cpp:21:
/usr/include/c++/4.3/backward/backward_warning.h:33:2: warning: #warning This file includes at least
one deprecated or antiquated header which may be removed without further notice at a future date.
Please use a non-deprecated interface with equivalent functionality instead. For a listing of 
replacement headers and interfaces,consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
In file included from LIB/examples/../tagger_light/../results/../utils/utils.h:31,from sst-light.cpp:21:
LIB/examples/../tagger_light/../results/../utils/../hash_stuff/hash_stuff.h: In member function
    abool std::equal_to<const char*>::operator()(const char*,const char*) consta:
LIB/examples/../tagger_light/../results/../utils/../hash_stuff/hash_stuff.h:44: error: a::strcmpa has not been declared
make: *** [sst-light.o] Error 1

任何人都有任何想法可能导致这个?

解决方法

是的 – gcc已经更新了他们的编译器,它不是’默认包括’它用于旧版本的一些头文件 – 您使用的代码尚未更新以反映这一点.

看起来你需要在sst-light.cpp中为strcmp添加include

#include <cstring>

此外,它看起来代码使用的是旧式的C include – 所以改变之类的东西

#include <iostream.h>

#include <iostream>

但只对C头文件执行此操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读