Xamarin.Android Exclude specific assembly from linking - xamarin

I updated my xamarin.android packages to the latest version and make the target framework is AndroidQ
but now I can't build the project when used Linker properties "SDK Assemblies only"
how I can exclude monkeyCache.SqlLite from linking assemblies

You can exclude assemblies from linking
editing .csproj file :
<PropertyGroup><AndroidLinkSkip>MvvmCross;MvvmCross.Plugin.Messenger</AndroidLinkSkip>
via project properties -> Android Options

Related

boost 1.74+ jni ndk compilation cmake project

I would like to compile boost for Android JNI CMake project.
I tried with this repo
https://github.com/moritz-wundke/Boost-for-Android
but fail build for boost v1.78 with ndk23..
Is there any tutorial or prebuilt how to do it on CMakeLists.txt project.
Thanks for help
I am using https://github.com/Orphis/boost-cmake in my CMake Android NDK projects and it works fine, you can look at this project https://github.com/nkh-lab/ndk-vsomeip-hello-world as a reference. The only extra thing you need to do is add FindBoost.cmake to serve find_package( Boost ) if you use it in your cmake files.

How to transform from CMake to a plain Visual Studio project?

I am able to CMake build this HelloWorld example project using cmakelists.txt file and generate a visual studio project.
project(helloworld LANGUAGES C CXX)
cmake_minimum_required(VERSION 3.5)
find_package(Idlpp-cxx REQUIRED)
if (NOT TARGET CycloneDDS-CXX::ddscxx)
find_package(CycloneDDS-CXX REQUIRED)
endif()
# Convenience function, provided by the Idlpp-cxx that generates a CMake
# target for the given IDL file. The function calls Idlcpp-cxx to generate
# source files and compiles them into a library.
idl_ddscxx_generate(ddscxxHelloWorldData_lib "HelloWorldData.idl")
add_executable(ddscxxHelloworldPublisher publisher.cpp)
add_executable(ddscxxHelloworldSubscriber subscriber.cpp)
# Link both executables to idl data type library and ddscxx.
target_link_libraries(ddscxxHelloworldPublisher ddscxxHelloWorldData_lib CycloneDDS-CXX::ddscxx)
target_link_libraries(ddscxxHelloworldSubscriber ddscxxHelloWorldData_lib CycloneDDS-CXX::ddscxx)
set_property(TARGET ddscxxHelloworldPublisher PROPERTY CXX_STANDARD 11)
set_property(TARGET ddscxxHelloworldSubscriber PROPERTY CXX_STANDARD 11)
I need to create the same project without cmakelists.txt and CMake
How to do this only using visual studio? where to define those commands in CMakelists.txt in visual studio if I create an empty c++ project
I have tried this making an empty project.
I don't know how to idl_ddscxx_generate and target_link_libraries perform in VS....
idl_ddscxx_generate has to run if IDL file has changed
target_link_libraries is required if I added new source files to the project....
Make a new, empty Visual Studio project.
Copy all source files except the CMake files.
Do whatever you do in a Visual Studio project. Add files, targets, dependecies, … If you are not sure, look up what is written in the CMakeLists.txt file.
Delete all CMake files in your original project and copy your Visual Studio project files.
Add these changes (deleted CMake files, added VS project files) to your Subversion repository, maybe do this in a branch that others can test it, report back, and improve the change. Once done, merge the branch.
Probably, add step 0.: Learn how Visual Studio organizes its project. Make a tutorial, take some training.
Remark: Whatever your problem is with CMake, you missed something. But you can find this out later and revert your changes and pick up CMake up again.

Xcode 12.4 Linking error: Library not found

I am using xcode 12.4 and In a macOS/OSX project I am getting a linking error Library not found.
The mac os app is using a C++ library that is being successfully built in the xcode workspace, but the linker fails to find it
I have added that dependency Cpp library in the "Link binary with Libraries" (Build phases)
I think my Library search paths setting in Build Settings is not correct, linker search hardcoded path which was set on different machine where project was first built.
The output of workspace which includes the C++ library is in the Derived data, how can I specify derived data or Build path as variable and use it to point to C++ library folder , so that even on different machine project is built without searching any hard coded library paths ?
Thanks,
Ahmed

boost linking with visual studio 2010

I have successfully built boost using bjam and visual studio 2010 using this command:
bjam --build-dir=c:\boost --build-type=complete --toolset=msvc-10.0 address-model=64 architecture=x86 --with-system
I have also set the stage/lib directory as the lib directory in visual studio.
However, the linker gives me this:
fatal error LNK1104: cannot open file 'libboost_filesystem-vc90-mt-gd-1_50.lib'
Why is it looking for 'vc90' versions of the libraries? the vc100 version is there in the directory.. how do I change that?
Thanks.
You can explicitly specify the paths to the libraries in project settings. First you need to include the library names that you want to link against in your project.
Now we have to specify the directories, where the libraries specified above can be found.
I hope, that helps.
Check the compiler setting (You have choices for vc90 (2008), vc100 (2010)) in your project's properties.

#import <YAJLiOS/YAJL.h> No such file or directory

I'm using xcode 4.02, iOSSDK4.3, YAJL 0.2.24.
I copied the YAJL.framework folder over to the iPhoneOS4.3sdk frameworks dir and then added the framework to my xcode project (Build Phases - Link Binary with Libraries)
Build settings - Other linker flags I added -ObjC -load_all to both Debug and Release.
Under Framework SearchPaths I added YAJLiOS.framework to both Debug and Release.
I try to compile my project and the header file is not found?
I'm missing something...
whoops.. the Frameworks Search Paths should be set to parent dir of the framework.. for example /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks

Resources