Comments (2)
Hi @jiangzhibin,
I'm not exactly sure what caused your particular issue. I have managed to build the SDK on OSX albeit without the unit tests. You will need to install brew if you have not already done so.
With brew you will need to install gcc, openssl, pkgconfig, ossp-uuid and valgrind. Once you have those installed I refer you to this pull request: https://github.com/Azure/azure-iot-sdk-c/pull/5/files. This was recently submitted and I pretty much replicated the changes made. Reviewing each file in turn:
CMakeLists.txt - I included all of these changes
build_all/osx/build.sh - I created this new file in the new directory. However there are a couple of bugs in it. The call to sysctl hw.ncpu (line 136) needs to be piped to cut -d ' ' -f 2, The call to sysctl hw.memsize also needs the same treatment. It can also be directly assigned to VSPACE and the calculations on MEMAR can be removed (lines 143 and 144). This is due to a different output format of the command compared to the original Linux version of the script. I also modified the compiler used to build the SDK by passing the options -D CMAKE_C_COMPILER=x86_64-apple-darwin15.6.0-gcc-6 and -D CMAKE_CXX_COMPILER=x86_64-apple-darwin15.6.0-g++-6
build_all/osx/setup.sh - I did not bother with this script since I had already used brew to pull in the dependencies.
iothub_client/tests/iothubtransporthttp_ut/iothubtransporthttp_ut.cpp - I ignored all of these changes. The reason being that this pull request was set up to use the default compiler, clang. This compiler is a little more picky than gcc. I chose to build the SDK with gcc so I did not need these changes.
iothub_service_client/samples/iothub_devicemethod_sample/CMakeLists.txt - I applied these changes.
iothub_service_client/samples/iothub_messaging_sample/CMakeLists.txt - I applied these changes.
Once these changes were complete I run build.sh from the new osx directory. I used the argument --skip-unittests because at this point I have not managed to get the unit tests to build.l
I'm anticipating better support for building under OSX. Let me know if you have further problems.
Mark Radbourne MSFT
from azure-c-shared-utility.
Hi @jiangzhibin,
Do you have any further problems regarding the build on OSX? If I don't hear from you I will consider this resolved and close the issue.
Thank you.
Mark Radbourne MSFT
from azure-c-shared-utility.
Related Issues (20)
- CMake Option Documentation
- azure-c-shared-utility/CMakeFiles/aziotsharedutil.dir/adapters/tlsio_openssl.c fails to build on Alpine HOT 4
- Does this code cause a memory leak? HOT 1
- How to port ”xio http proxy” in C-SDK HOT 4
- 25 Warnings in IOT code HOT 8
- OpenSSL3 compatibility HOT 1
- OpenSSL3 compatability - with OPENSSL_NO_DEPRECATED_3_0 defined, still buggy HOT 2
- socketio_berkeley: recv with MSG_NOSIGNAL causes errno 22 (EINVAL) HOT 1
- Access Violation in "uws_client.c" HOT 2
- Unable to Clone on Windows HOT 2
- Misleading error message in adapters\tlsio_openssl.c : on_underlying_io_open_complete HOT 3
- Building on ARM64 shows "target architecture: GENERIC" HOT 1
- uws_client: No indication that WebSocket has been closed, if close is initiated by server. HOT 2
- INCLUDES DESTINATION issue
- hard requirement on CURL HOT 1
- Segmentation fault caused by initiate_socket_connection in adapters/socketio_berkeley.c when DNS resolution failed HOT 2
- Unit tests are disabled for socketio_berkeley
- url decode not working for forms post that contain spaces. HOT 3
- openSSL 1.1.1n handhshake returning error code 2 HOT 3
- PKCS#8 not supported for Windows
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from azure-c-shared-utility.