RGLab / CytoML

A GatingML Interface for Cross Platform Cytometry Data Sharing
GNU Affero General Public License v3.0
29 stars 14 forks source link

Library not installed #116

Open kalmSveta opened 3 years ago

kalmSveta commented 3 years ago

I am on Ubuntu 18.04.5, I am trying to install CytoML on R 4.0 with BiocManager::install('CytoML') However I get this error:

Error: package or namespace load failed for ‘CytoML’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/home/kalmsveta/R/x86_64-pc-linux-gnu-library/4.0/00LOCK-CytoML/00new/CytoML/libs/CytoML.so':
  /home/kalmsveta/R/x86_64-pc-linux-gnu-library/4.0/00LOCK-CytoML/00new/CytoML/libs/CytoML.so: undefined symbol: _ZNK5boost10filesystem15directory_entry20m_get_symlink_statusEPNS_6system10error_codeE
Error: loading failed
Execution halted
ERROR: loading failed

Could you help me, please?

mikejiang commented 3 years ago

try to reinstall cytolib to see if it helps.

kalmSveta commented 3 years ago

try to reinstall cytolib to see if it helps.

I have reinstalled cytolib, but installation of CytoML still produces the same error.

mikejiang commented 3 years ago

please save the complete the output of

remotes::install_github("RGLab/cytolib")
remotes::install_github("RGLab/flowWorkspace")
remotes::install_github("RGLab/CytoML")

to a txt file and attach here

kalmSveta commented 3 years ago

The file is attached install.txt

mikejiang commented 3 years ago

What is your BH package version?

 packageVersion("BH")
[1] ‘1.72.0.3’
kalmSveta commented 3 years ago

I have the same version:

> packageVersion("BH")
[1] ‘1.72.0.3’
mikejiang commented 3 years ago

You may have some older version of boost library on your system (e.g. at /usr/include/boost) that doesn't have directory.hpp header , which precedes the header of your BH package.

One option is to remove your system boost lib, but since boost is pretty commonly installed, I've updated it with the more backward compatible call boost::filesystem::symlink_option::recurse, now it should be good. Try remotes::install_github("RGLab/CytoML") again.

kalmSveta commented 3 years ago

I've tried to reinstall CytoML, but still get the same error

mikejiang commented 3 years ago

Your previous error was this

../inst/include/CytoML/workspace_type.hpp:65:101: error: ‘directory_options’ is not a member of ‘fs’
         for(const fs::directory_entry & i: fs::recursive_directory_iterator(fs::path(data_dir), fs::directory_options::follow_directory_symlink))

Now directory_options reference is removed from the code base so I am a little surprised to hear that you were still getting the same error. Can you confirm with the attached installation log? Also, have you tried to look for your system-wise boost library instance and remove it if it is older than 1.72.0.3?

kalmSveta commented 3 years ago

Sorry, I mean the previous error with Error: package or namespace load failed for ‘CytoML’ in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/home/kalmsveta/R/x86_64-pc-linux-gnu-library/4.0/00LOCK-CytoML/00new/CytoML/libs/CytoML.so': /home/kalmsveta/R/x86_64-pc-linux-gnu-library/4.0/00LOCK-CytoML/00new/CytoML/libs/CytoML.so: undefined symbol: _ZNK5boost10filesystem15directory_entry20m_get_symlink_statusEPNS_6system10error_codeE The log is attached: install2.txt

mikejiang commented 3 years ago

symbol _ZNK5boost10filesystem15directory_entry20m_get_symlink_statusEPNS_6system10error_codeE (i.e. boost::filesystem::directory_entry::m_get_symlink_status(boost::system::error_code*) const is not used by either cytolib or CytoML code bases). Not sure why your build is still looking for it.

Since I can't really reproduce your error, I will have to try my best to guess based on your output, here is my linker flags

 ~/rglab/workspace/CytoML$R CMD config SHLIB_CXXLDFLAGS
-shared

while yours seems to have some other unconventional flags (e.g. -Bsymbolic-functions), but I am not sure if they are relevant to your loading error.

Again, try to locate the boost library under your /home/kalmsveta/anaconda3/ (both include and libs), if it is present then try to remove them to see if it helps.

Taimie48 commented 2 years ago

My apologies for resurrecting this issue.

I am trying to install CytoML on a jupyterhub based version of RStudio. I am getting the same "undefined symbol" error as above.

We suspect that the error may result from the version of boost to compile CytoML being different from the one installed on the server. May I ask which version was used to compile CytoML or is there anything else I can do befor asking the owner of the server to change their architecture?

mikejiang commented 2 years ago

current version of BH (https://cran.r-project.org/web/packages/BH/index.html) builds ok with cytoML on bioc site, http://bioconductor.org/checkResults/3.15/bioc-LATEST/CytoML/ so make sure your system boost library is consistent with BH (which is at boost 1.78.0 )