Ho appena iniziato a programmare in C++ e mi sono reso conto che ho dovuto scrivere lo stesso codice più e più volte (per lo più funzioni di utilità).Creazione di librerie condivise in C++ per OSX
Quindi, sto cercando di creare una libreria condivisa e installarla in PATH in modo da poter utilizzare le funzioni di utilità ogni volta che ne ho bisogno.
Ecco che cosa ho fatto finora: -
Creare un file utils.h
con il seguente contenuto: -
#include<iostream>
#include<string>
std::string to_binary(int x);
Creare un file utils.cpp
con il seguente contenuto: -
#include "utils.h"
std::string to_binary(int x) {
std::string binary = "";
while (x > 0) {
if (x & 1) binary += "1";
else binary += "0";
x >>= 1;
}
return binary;
}
Seguire i passaggi indicati qui: - http://www.techytalk.info/c-cplusplus-library-programming-on-linux-part-two-dynamic-libraries/
- creare il codice oggetto libreria:
g++ -Wall -fPIC -c utils.cpp
Ma, come il link qui sopra si intende per Linux in realtà non funziona su OSX. Qualcuno potrebbe suggerire di leggere risorse o suggerire suggerimenti su come potrei andare a compilare e impostare quegli oggetti nel percorso su una macchina OSX?
Inoltre, immagino che ci dovrebbe essere un modo per rendere questo multipiattaforma (cioè scrivere una serie di istruzioni (script bash) o un Makefile) in modo che possa essere usato per compilarlo facilmente attraverso le piattaforme. Qualche suggerimento su questo?
Solo semi rilevante, ma la conversione di un 'int' in una stringa di' 0's e '1's è più semplice tramite' std :: bitset': 'std :: string to_binary (int v) {return std :: bitset (v) .to_string();} ' –
Tu don ' t necessario installare il tuo 'libuki.so' nel tuo' $ PATH' ma solo nel tuo '$ LD_LIBRARY_PATH' (ad es. forse nel tuo '$ HOME/lib /') –