Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Library not installed #116

Open
kalmSveta opened this issue Sep 13, 2020 · 13 comments
Open

Library not installed #116

kalmSveta opened this issue Sep 13, 2020 · 13 comments

Comments

@kalmSveta
Copy link

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
Copy link
Member

try to reinstall cytolib to see if it helps.

@kalmSveta
Copy link
Author

try to reinstall cytolib to see if it helps.

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

@mikejiang
Copy link
Member

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
Copy link
Author

The file is attached
install.txt

@mikejiang
Copy link
Member

What is your BH package version?

 packageVersion("BH")
[1] ‘1.72.0.3

@kalmSveta
Copy link
Author

I have the same version:

> packageVersion("BH")
[1] ‘1.72.0.3’

@mikejiang
Copy link
Member

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
Copy link
Author

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

@mikejiang
Copy link
Member

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
Copy link
Author

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
Copy link
Member

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
Copy link

Taimie48 commented Jun 2, 2022

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
Copy link
Member

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 )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants