I'm new to using clang, so to clarify: in my case, I should try "clang++ -g2 -O3 -I /usr/local/include cryptopp -Wl,-L" (where cryptopp is a subdirectory of include)? Also, is "-Wl,/usr/local/lib -o test.exe" intended to be shorthand for "clang++ -g2 -O3 -Wl,/usr/local/lib -o test.exe"? (and, relatedly, what output should I expect in test.exe?)
On Wednesday, September 15, 2021 at 4:58:05 PM UTC-7 Jeffrey Walton wrote: > On Wed, Sep 15, 2021 at 6:39 PM Samyukta Yagati <sa...@berkeley.edu> > wrote: > > > > I installed Crypto++ from source as follows: > > > > git clone https://github.com/weidai11/cryptopp.git > > cd cryptopp > > Uncommented the CXX flag line in GNUmakefile that adds "-stdlib=libc++" > because I am using XCode. > > make -j 8 (8 = value of $(nproc) on my machine if it were linux) > > sudo make install > > > > The make and install complete without errors. I confirmed that > /usr/local/lib contains libcryptopp.a. > > > > When I try to use libcryptopp in a project (in a different directory > from the cryptopp install), clang (Apple Clang 12.0.0) can't find it. I get > the following error message: > > > > + LD lib/crypto_bench > > ld: library not found for -l:libcryptopp.a > > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > > > > ... > > > > I also tried updating my PATH variable in bash_profile with the location > of libcryptopp as follows, then source'd bash_profile again: > > > > export PATH="/usr/local/lib:$PATH" > > > > However, this resulted in the same error as before when I tried to > compile the project. I've spent several hours googling and haven't been > able to find a fix, and I'm wary of manually symlinking the file because it > can break other installs on my laptop. Any help with fixing this issue > would be much appreciated. > > When linking, use -L to provide a path to the linker. That is, you > invoke ld directly. If you are passing the linker option through the > compiler driver, then use -Wl,-L -Wl,<path> > > So you would probably use something like: > > clang++ -g2 -O3 -I /usr/local/include test.cxx -Wl,-L > -Wl,/usr/local/lib -o test.exe > > You would have to do the same on, say, CentOS, Fedora and Red Hat. Red > Hat does not put /usr/local on-path for the build tools. > > Jeff > -- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/9d368cb4-7206-458f-9bd7-3a4796ac9df9n%40googlegroups.com.