référence non définie à sqrt dans SVM-Struct (j'ai utilisé -lm)

Joxixi

En fait, je travaille avec le célèbre projet SVM-struct ( http://www.cs.cornell.edu/people/tj/svm_light/svm_struct.html ) sur Ubuntu 16.04. J'ai suivi les instructions dans http://www.cs.cornell.edu/people/tj/svm_light/svm_multiclass.html pour utiliser SVM-multiclass, téléchargé le code source et make. Mais j'ai rencontré quelques erreurs lors de la construction du projet:

$ make
cd svm_light; make svm_learn_hideo_noexe
make[1]: Entering directory '/home/parallels/CLionProjects/svm_multiclass/svm_light'
make[1]: Nothing to be done for 'svm_learn_hideo_noexe'.
make[1]: Leaving directory '/home/parallels/CLionProjects/svm_multiclass/svm_light'
cd svm_struct; make svm_struct_noexe
make[1]: Entering directory '/home/parallels/CLionProjects/svm_multiclass/svm_struct'
make[1]: Nothing to be done for 'svm_struct_noexe'.
make[1]: Leaving directory '/home/parallels/CLionProjects/svm_multiclass/svm_struct'
gcc  -O3 -lm -Wall svm_struct/svm_struct_learn.o svm_struct_learn_custom.o svm_struct_api.o svm_light/svm_hideo.o svm_light/svm_learn.o svm_light/svm_common.o svm_struct/svm_struct_common.o svm_struct/svm_struct_main.o -o svm_multiclass_learn 
svm_light/svm_learn.o: In function `estimate_sphere':
svm_learn.c:(.text+0x6e88): undefined reference to `sqrt'
svm_light/svm_learn.o: In function `estimate_r_delta':
svm_learn.c:(.text+0x7053): undefined reference to `sqrt'
svm_light/svm_learn.o: In function `estimate_r_delta_average':
svm_learn.c:(.text+0x7b04): undefined reference to `sqrt'
svm_light/svm_learn.o: In function `length_of_longest_document_vector':
svm_learn.c:(.text+0x7b86): undefined reference to `sqrt'
svm_light/svm_learn.o: In function `incorporate_unlabeled_examples':
svm_learn.c:(.text+0x89eb): undefined reference to `sqrt'
svm_light/svm_learn.o:svm_learn.c:(.text+0xc952): more undefined references to `sqrt' follow
svm_light/svm_common.o: In function `classify_example':
svm_common.c:(.text+0x38f): undefined reference to `tanh'
svm_common.c:(.text+0x42d): undefined reference to `exp'
svm_common.c:(.text+0x4a7): undefined reference to `pow'
svm_light/svm_common.o: In function `kernel':
svm_common.c:(.text+0x870): undefined reference to `tanh'
svm_common.c:(.text+0x90d): undefined reference to `exp'
svm_common.c:(.text+0x988): undefined reference to `pow'
svm_light/svm_common.o: In function `model_length_s':
svm_common.c:(.text+0x2c8d): undefined reference to `sqrt'
svm_light/svm_common.o: In function `model_length_n':
svm_common.c:(.text+0x2f5c): undefined reference to `sqrt'
svm_light/svm_common.o: In function `cholesky_matrix':
svm_common.c:(.text+0x3c6f): undefined reference to `sqrt'
svm_light/svm_common.o: In function `find_indep_subset_of_matrix':
svm_common.c:(.text+0x3f41): undefined reference to `sqrt'
svm_light/svm_common.o: In function `single_kernel':
svm_common.c:(.text+0xc0c): undefined reference to `tanh'
svm_common.c:(.text+0xc84): undefined reference to `pow'
svm_common.c:(.text+0xcfb): undefined reference to `exp'
collect2: error: ld returned 1 exit status
Makefile:48: recipe for target 'svm_multiclass_learn' failed
make: *** [svm_multiclass_learn] Error 1

Je pense que le Makefile a déjà inclus -lm.

# Makefile for SVM-multiclass, 03.07.04

#Use the following to compile under unix or cygwin
CC = gcc
LD = gcc

#Call 'make' using the following line to make CYGWIN produce stand-alone Windows executables
#       make 'SFLAGS=-mno-cygwin'

CFLAGS =   $(SFLAGS) -O3 -fomit-frame-pointer -ffast-math -Wall
LDFLAGS =  $(SFLAGS) -O3 -lm -Wall
#CFLAGS =  $(SFLAGS) -pg -Wall
#LDFLAGS = $(SFLAGS) -pg -lm -Wall 

all: svm_multiclass_learn svm_multiclass_classify

.PHONY: clean
clean: svm_light_clean svm_struct_clean
    rm -f *.o *.tcov *.d core gmon.out *.stackdump 

#-----------------------#
#----   SVM-light   ----#
#-----------------------#
svm_light_hideo_noexe: 
    cd svm_light; make svm_learn_hideo_noexe

svm_light_clean: 
    cd svm_light; make clean

#----------------------#
#----  STRUCT SVM  ----#
#----------------------#

svm_struct_noexe: 
    cd svm_struct; make svm_struct_noexe

svm_struct_clean: 
    cd svm_struct; make clean

#-------------------------#
#----  SVM MULTICLASS ----#
#-------------------------#

svm_multiclass_classify: svm_light_hideo_noexe svm_struct_noexe svm_struct_api.o svm_struct/svm_struct_classify.o svm_struct/svm_struct_common.o svm_struct/svm_struct_main.o 
    $(LD) $(LDFLAGS) svm_struct_api.o svm_struct/svm_struct_classify.o svm_light/svm_common.o svm_struct/svm_struct_common.o -o svm_multiclass_classify $(LIBS)

svm_multiclass_learn: svm_light_hideo_noexe svm_struct_noexe svm_struct_api.o svm_struct_learn_custom.o svm_struct/svm_struct_learn.o svm_struct/svm_struct_common.o svm_struct/svm_struct_main.o
    $(LD) $(LDFLAGS) svm_struct/svm_struct_learn.o svm_struct_learn_custom.o svm_struct_api.o svm_light/svm_hideo.o svm_light/svm_learn.o svm_light/svm_common.o svm_struct/svm_struct_common.o svm_struct/svm_struct_main.o -o svm_multiclass_learn $(LIBS)


svm_struct_api.o: svm_struct_api.c svm_struct_api.h svm_struct_api_types.h svm_struct/svm_struct_common.h
    $(CC) -c $(CFLAGS) svm_struct_api.c -o svm_struct_api.o

svm_struct_learn_custom.o: svm_struct_learn_custom.c svm_struct_api.h svm_light/svm_common.h svm_struct_api_types.h svm_struct/svm_struct_common.h
    $(CC) -c $(CFLAGS) svm_struct_learn_custom.c -o svm_struct_learn_custom.o
OS

L'éditeur de liens collecte d'abord les dépendances ( svm_light/svm_learn.o) et les remplit lorsqu'il voit une définition ( -lm).

Vous semblez déjà avoir un $(LIBS)à la fin de votre ldinvocation, alors il suffit de :

LIBS += -lm

devrait le réparer.

Autres conseils :

  • vous pouvez remplacer le motif cd X; make TARGETparmake -C X TARGET
  • vous pouvez faire référence à la cible comme $@et au premier prérequis dans la liste de dépendances comme $<, ainsi votre dernière règle peut être écrite comme :
svm_struct_learn_custom.o: svm_struct_learn_custom.c svm_struct_api.h svm_light/svm_common.h svm_struct_api_types.h svm_struct/svm_struct_common.h
    $(CC) -c $(CFLAGS) $< -o $@

où la redéfinition de la recette de la recette intégrée pour la compilation des fichiers .c, il suffit donc de simplement lister les en-têtes comme prérequis (supplémentaires) :

svm_struct_learn_custom.o: svm_struct_api.h svm_light/svm_common.h svm_struct_api_types.h svm_struct/svm_struct_common.h

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

C - référence non définie à "sqrt" même avec '-lm'

référence non définie à la fonction opencv lorsque j'ai compilé avec Makefile

J'ai une variable non définie dans mon PHP

J'ai utilisé composer pour installer drupal - pourquoi ai-je toujours des dépendances php non résolues?

ERREUR de "référence non définie" dans JVM 9 lorsque j'invoque une fonction membre auto-définie dans "class os"

J'ai une erreur de variable non définie dans mon script

C Cmake setup - référence non définie à pow () (malgré -lm)

pourquoi/comment le mot-clé 'this' fait-il référence à l'objet événement et non à l'objet global car j'ai utilisé le mot-clé 'this' dans une fonction

InterestRate revient à 0, la référence que j'ai utilisée provient d'un autre formulaire

Python: référence non résolue (variableName) lors de la tentative de référence et d'utilisation des variables que j'ai déclarées en haut du script, dans une fonction

référence non définie à 'XXX' après avoir utilisé #define _GNU_SOURCE

Pourquoi est-ce que j'obtiens une erreur "référence non définie à sqrt" même si j'inclus l'en-tête math.h?

affectant une valeur à une variable complexe dans le contrôleur, j'obtiens une référence d'objet non définie sur une instance d'un objet

Référence non définie pour constexpr non optimisée utilisée comme paramètre par défaut

Problème Java - méthode non définie même si je l'ai déjà définie dans le package

comment puis-je récupérer la valeur dans le fichier html j'ai utilisé le cadre d'entité

J'ai une route définie dans mon web.php mais l'erreur dit throw new InvalidArgumentException("Route [{$name}] non définie.");

Pourquoi est-ce que j'obtiens une référence non définie à Class :: Class ()?

Pourquoi est-ce que j'obtiens : « référence non définie à `glfwInit' » ?

pourquoi j'ai eu l'erreur «Référence d'objet non définie sur une instance d'un objet» avec le paramètre de session et ce n'est pas nul?

J'ai eu l'erreur d'expression régulière non fermée dans mon jsfiddle

Référence non résolue d'Android Studio 3.0: SupportedLanguages pour la classe AIConfiguration dans Dialogflow (api.ai)

Référence d'étape non définie de concombre dans Intellij

Référence non définie GHC aux chemins dans les dépendances

Variable d'erreur de référence IIFE non définie dans la fonction ?

Message d'erreur dans les blocs de code: référence non définie à 'WinMain @ 16'

Rien n'a aidé à résoudre "Référence non définie à vtable" dans Qt

Apache Thrift référence non définie à vtable dans le code généré

Référence non résolue dans la fonction définie

TOP liste

  1. 1

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  2. 2

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  3. 3

    Résultat de l'échantillonneur JMeter : comprendre le temps de chargement, le temps de connexion et la latence

  4. 4

    Modbus Python Schneider PM5300

  5. 5

    Pourquoi Object.hashCode () ne suit pas la convention du code Java

  6. 6

    Comment faire une recherche partielle et obtenir un score pertinent dans Elasticsearch

  7. 7

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  8. 8

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  9. 9

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  10. 10

    Comment changer la couleur de la police dans R?

  11. 11

    Autocomplete avec java, Redis, Recherche élastique, Mongo

  12. 12

    MasterService d'ElasticSearch prend trop de temps pour calculer l'état du cluster et lancer ProcessClusterEventTimeoutException

  13. 13

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  14. 14

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  15. 15

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  16. 16

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  17. 17

    Quelque chose dans le cluster Elasticsearch 7.4 devient de plus en plus lent avec les délais de lecture de temps en temps

  18. 18

    Ajustement non linéaire avec R

  19. 19

    php ajouter et fusionner des données de deux tables

  20. 20

    Exporter la table de l'arborescence vers CSV avec mise en forme

  21. 21

    帶有 Spring Boot 和 Azure AD 的 KeyCloak

chaudétiquette

Archive