You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2022/10/09 18:18:43 UTC

[GitHub] [pulsar-client-cpp] BewareMyPower commented on pull request #31: Link to OpenSSL statically when LINK_STATIC is ON

BewareMyPower commented on PR #31:
URL: https://github.com/apache/pulsar-client-cpp/pull/31#issuecomment-1272600120

   After this PR, here are examples about how do I build an application with the given three libraries on macOS. Assume they are built with `LINK_STATIC=ON` option. It's a little tricky to build the static library of libcurl, see my comments here: https://github.com/apache/pulsar/issues/4967#issuecomment-1272440827
   
   Given such an application code (`example.cc`):
   
   ```c++
   #include <pulsar/Client.h>
   using namespace pulsar;
   
   int main() {
       Client client("pulsar://localhost:6650");
       client.close();
   }
   ```
   
   Assuming the headers are under `include/` directory and the libraries are under `lib/` directory, which is not a system path.
   
   ### libpulsar.so
   
   Build:
   
   ```bash
   clang++ example.cc -I include/ -L lib/ -lpulsar
   ```
   
   Run:
   
   ```bash
   # You have to add the path of `libpulsar.dylib` to a specific env variable so that symbols can be found
   DYLD_LIBRARY_PATH=$PWD/lib ./a.out
   ```
   
   ### libpulsar.a
   
   Build:
   
   ```bash
   # You have to link all 3rd party dependencies.
   # BTW, the directory followed by `-L` might be different in your actual env.
   clang++ example.cc -I include/ 
   lib/libpulsar.a \
   -lcurl -lz -lzstd \
   -L /usr/local/opt/protobuf/lib/ -lprotobuf \
   -L /usr/local/opt/openssl@3/lib/ -lssl -lcrypto \
   -L /usr/local/opt/snappy/lib/ -lsnappy
   ```
   
   Run:
   
   ```bash
   ./a.out
   ```
   
   ### libpulsarwithdeps.a
   
   Build:
   
   ```bash
   # NOTE: these -framework options are required by curl.a and only needed on macOS 
   clang++ example.cc lib/libpulsarwithdeps.a -framework SystemConfiguration -framework CoreFoundation
   ```
   
   Run:
   
   ```bash
   ./a.out
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org