Skip to content
This repository was archived by the owner on Sep 9, 2022. It is now read-only.

Error when make: syntax error while compiling "threadpool.cpp" #76

Description

@chrisweird7

I followed the instruction to generate the Makefile and succeeded.

While the make process, some error occurred while compiling the "threadpool.cpp", I think it's a syntax error.

I know almost nothing about c++, but I'm very interested in glass3, so please help.

The detailed error information are as follows:

[ 17%] Performing build step for 'util'
Scanning dependencies of target util
[ 3%] Building CXX object CMakeFiles/util.dir/src/baseclass.cpp.o
[ 6%] Building CXX object CMakeFiles/util.dir/src/cache.cpp.o
[ 9%] Building CXX object CMakeFiles/util.dir/src/config.cpp.o
[ 12%] Building CXX object CMakeFiles/util.dir/src/date.cpp.o
[ 16%] Building CXX object CMakeFiles/util.dir/src/fileutil.cpp.o
[ 19%] Building CXX object CMakeFiles/util.dir/src/geo.cpp.o
[ 22%] Building CXX object CMakeFiles/util.dir/src/glassid.cpp.o
[ 25%] Building CXX object CMakeFiles/util.dir/src/glassmath.cpp.o
[ 29%] Building CXX object CMakeFiles/util.dir/src/logger.cpp.o
[ 32%] Building CXX object CMakeFiles/util.dir/src/queue.cpp.o
[ 35%] Building CXX object CMakeFiles/util.dir/src/stringutil.cpp.o
[ 38%] Building CXX object CMakeFiles/util.dir/src/taper.cpp.o
[ 41%] Building CXX object CMakeFiles/util.dir/src/threadbaseclass.cpp.o
[ 45%] Building CXX object CMakeFiles/util.dir/src/threadpool.cpp.o
In file included from /home/chris/github/neic-glass3-master/util/src/threadpool.cpp:1:
/home/chris/github/neic-glass3-master/util/include/threadpool.h:77:19: error: ‘std::function’ has not been declared
77 | void addJob(std::function<void()> newJob);
| ^~~~~~~~
/home/chris/github/neic-glass3-master/util/include/threadpool.h:77:27: error: expected ‘,’ or ‘...’ before ‘<’ token
77 | void addJob(std::function<void()> newJob);
| ^
/home/chris/github/neic-glass3-master/util/include/threadpool.h:106:18: error: ‘function’ is not a member of ‘std’
106 | std::queue<std::function<void()>> m_JobQueue;
| ^~~~~~~~
/home/chris/github/neic-glass3-master/util/include/threadpool.h:17:1: note: ‘std::function’ is defined in header ‘’; did you forget to ‘#include ’?
16 | #include
+++ |+#include
17 | #include
/home/chris/github/neic-glass3-master/util/include/threadpool.h:106:18: error: ‘function’ is not a member of ‘std’
106 | std::queue<std::function<void()>> m_JobQueue;
| ^~~~~~~~
/home/chris/github/neic-glass3-master/util/include/threadpool.h:106:18: note: ‘std::function’ is defined in header ‘’; did you forget to ‘#include ’?
/home/chris/github/neic-glass3-master/util/include/threadpool.h:106:32: error: template argument 1 is invalid
106 | std::queue<std::function<void()>> m_JobQueue;
| ^
/home/chris/github/neic-glass3-master/util/include/threadpool.h:106:32: error: template argument 2 is invalid
/home/chris/github/neic-glass3-master/util/include/threadpool.h:106:33: error: expected unqualified-id before ‘>’ token
106 | std::queue<std::function<void()>> m_JobQueue;
| ^~
/home/chris/github/neic-glass3-master/util/src/threadpool.cpp:25:6: error: no declaration matches ‘void glass3::util::ThreadPool::addJob(std::function<void()>)’
25 | void ThreadPool::addJob(std::function<void()> newjob) {
| ^~~~~~~~~~
In file included from /home/chris/github/neic-glass3-master/util/src/threadpool.cpp:1:
/home/chris/github/neic-glass3-master/util/include/threadpool.h:77:7: note: candidate is: ‘void glass3::util::ThreadPool::addJob(int)’
77 | void addJob(std::function<void()> newJob);
| ^~~~~~
/home/chris/github/neic-glass3-master/util/include/threadpool.h:31:7: note: ‘class glass3::util::ThreadPool’ defined here
31 | class ThreadPool : public util::ThreadBaseClass {
| ^~~~~~~~~~
/home/chris/github/neic-glass3-master/util/src/threadpool.cpp: In member function ‘virtual glass3::util::WorkState glass3::util::ThreadPool::work()’:
/home/chris/github/neic-glass3-master/util/src/threadpool.cpp:41:6: error: ‘m_JobQueue’ was not declared in this scope
41 | if (m_JobQueue.empty() == true) {
| ^~~~~~~~~~
/home/chris/github/neic-glass3-master/util/src/threadpool.cpp:50:33: error: ‘m_JobQueue’ was not declared in this scope
50 | std::function<void()> newjob = m_JobQueue.front();
| ^~~~~~~~~~
/home/chris/github/neic-glass3-master/util/src/threadpool.cpp: In member function ‘int glass3::util::ThreadPool::getJobQueueSize()’:
/home/chris/github/neic-glass3-master/util/src/threadpool.cpp:82:35: error: ‘m_JobQueue’ was not declared in this scope
82 | int queuesize = static_cast(m_JobQueue.size());
| ^~~~~~~~~~
make[5]: *** [CMakeFiles/util.dir/build.make:251: CMakeFiles/util.dir/src/threadpool.cpp.o] Error 1
make[4]: *** [CMakeFiles/Makefile2:124: CMakeFiles/util.dir/all] Error 2
make[3]: *** [Makefile:160: all] Error 2
make[2]: *** [CMakeFiles/util.dir/build.make:131: util-prefix/src/util-stamp/util-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:178: CMakeFiles/util.dir/all] Error 2
make: *** [Makefile:103: all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions