I'm trying to run this Bitcoin Mining Simulator code from the provided makefile on the GitHub repository: mining_simulator. It's using the function gsl_sf_lambert_W0
, which is present in gsl according to their documentation. However, it gives the following error:
make -f Makefile
g++ -std=c++14 -Wall -g -I./ -lgsl -lcblas -o strat StratSim/exp3_learning_model.cpp StratSim/learning_model.cpp StratSim/learning_strategy.cpp StratSim/main.cpp StratSim/multiplicative_weights_learning_model.cpp BlockSim/blockchain.o BlockSim/blockchain_settings.o BlockSim/block.o BlockSim/clever_selfish_miner.o BlockSim/default_miner.o BlockSim/default_selfish_miner.o BlockSim/function_fork_miner.o BlockSim/function_fork_selfish_miner.o BlockSim/game.o BlockSim/game_result.o BlockSim/gap_miner.o BlockSim/lazy_fork_miner.o BlockSim/miner.o BlockSim/minerGroup.o BlockSim/miner_result.o BlockSim/mining_style.o BlockSim/petty_miner.o BlockSim/picky_mining_style.o BlockSim/publishing_strategy.o BlockSim/selfish_miner.o BlockSim/simple_mining_style.o BlockSim/simple_publisher.o BlockSim/strategy.o BlockSim/typeDefs.o BlockSim/utils.o BlockSim/withholding_publisher.o
/usr/bin/ld: BlockSim/function_fork_miner.o: in function `functionForkLambert(Blockchain const&, unsigned long long, double)':
/home/atul/Desktop/cs731/mining_simulator-master/BlockSim/function_fork_miner.cpp:105: undefined reference to `gsl_sf_lambert_W0'
collect2: error: ld returned 1 exit status
make: *** [Makefile:18: strat] Error 1
Their include statement looks fine:
#include <gsl/gsl_sf_lambert.h>
What is the problem here? `
I tried updating the gsl library to latest version by sudo updates.