[
https://issues.apache.org/jira/browse/SINGA-272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15687234#comment-15687234
]
Moaz Reyad commented on SINGA-272:
----------------------------------
How can you compile SINGA without glog?
If glog does not exist, I get this error while compiling with the default
settings:
$ cmake ..
-- Could NOT find GLOG (missing: GLOG_INCLUDE_DIR GLOG_LIBRARIES)
-- GLOG FOUND at GLOG_INCLUDE_DIR-NOTFOUND
CMake Error: The following variables are used in this project, but they are set
to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake
files:
GLOG_INCLUDE_DIR
This means by default glog is required, right?
> singa::logging classes are missing from libsinga.so
> ----------------------------------------------------
>
> Key: SINGA-272
> URL: https://issues.apache.org/jira/browse/SINGA-272
> Project: Singa
> Issue Type: Bug
> Environment: Linux (Ubuntu)
> Reporter: Moaz Reyad
>
> When I try to compile a C++ file like
> {code:title=test.cpp|borderStyle=solid}
> #include "singa/io/encoder.h"
> #include "singa/io/decoder.h"
> #include <iostream>
> #include <sstream>
> #include <algorithm>
> using namespace std;
> using singa::Shape;
> using singa::Tensor;
> int main()
> {
> cout << "Testing..." << endl;
> singa::CSVEncoder encoder;
> singa::CSVDecoder decoder;
> singa::DecoderConf decoder_conf;
> decoder_conf.set_has_label(true);
> decoder.Setup(decoder_conf);
> float in_data[] = {1.23f, 4.5f, 5.1f, 3.33f, 0.44f};
> std::string in_str = "2, 1.23, 4.5, 5.1, 3.33, 0.44";
> int in_label = 2;
> size_t size = 5;
> std::vector<Tensor> input;
> Tensor data(Shape{size}, singa::kFloat32), label(Shape{1}, singa::kInt);
> data.CopyDataFromHostPtr<float>(in_data, size);
> label.CopyDataFromHostPtr<int>(&in_label, 1);
> input.push_back(data);
> input.push_back(label);
> std::string value = encoder.Encode(input);
> in_str.erase(std::remove(in_str.begin(), in_str.end(), ' '), in_str.end());
> std::vector<Tensor> output = decoder.Decode(value);
> const auto* out_data = output.at(0).data<float>();
> const auto* out_label = output.at(1).data<int>();
> return 0;
> }
> {code}
> I get this error:
> {code:title=compiling|borderStyle=solid}
> $ g++ ./test.cpp -l singa
> /tmp/cc46xzSI.o: In function `singa::Block::data() const':
> test.cpp:(.text._ZNK5singa5Block4dataEv[_ZNK5singa5Block4dataEv]+0x4b):
> undefined reference to `singa::logging::LogMessageFatal::LogMessageFatal(char
> const*, int)'
> test.cpp:(.text._ZNK5singa5Block4dataEv[_ZNK5singa5Block4dataEv]+0x7f):
> undefined reference to `singa::logging::LogMessageFatal::~LogMessageFatal()'
> test.cpp:(.text._ZNK5singa5Block4dataEv[_ZNK5singa5Block4dataEv]+0xba):
> undefined reference to `singa::logging::LogMessageFatal::~LogMessageFatal()'
> collect2: error: ld returned 1 exit status
> {code}
> I think singa::logging classes are not linked correctly in libsinga.so during
> installation.
> The workaround is to do:
> $g++ -DUSE_GLOG ./test.cpp -l singa -l glog
> But it is better if libsinga.so is built with singa::logging classes.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)