Xcode Linked Framework Not Found in Swift Project with Target Dependencies - ios11

I have a Swift Project with a linked framework, built as project target dependencies.
So I have specified the Target Dependencies and the dependency target framework in the Link Binary With Libraries.
I have set up the Bridging Header for that framework as header file and the Objective-C Bridging Header.
Everything works when using that build product in the Frameworks folder's group directly. Of course in that case I cannot debug the inner framework sources.
So when I use the Target Dependency as sub-project, Xcode9 complains that the public header of that framework - specified in the Bridging-Header
#import <MyFramework/MyFrameworkImports.h>
has not been found.
I guess if I must manually specify the Product Build folder as MACRO in the Frameworks Search Path - considering that the build products belong to a sub-project, so I cannot get that path from the macro $(BUILT_PRODUCTS_DIR).

Related

Netbeans JSF - Creating executable JAR file

I'm working at the moment on an JSF Project project. Everything is working fine. Creating .war-file, deploying it.
What I actually want is, to create a executable JAR-file for a single Class. In this Class I have a Main-method that sends an email after executing it.
I the past I have worked with Eclipse. And that was very easy.
Now I am working with Netbeans. I have red a lot of posts with the information to clean and build the project. Next to that checking the .dist folder for the JAR-files.
I have either the .dist folder, or any JAR-files in my Project folder for that correlate file.
How can I easily create that JAR-file in Netbeans?
Assuming you are using a native NetBeans project rather than Maven:
The build artefact of a project is defined by it's project type. A JSB/Web project is always build into a WAR file.
If there is one class in your project that you want to put into a JAR file, the clean solution would be to create a new "Java" project with that class (as your class clearly has no dependencies to your Web Application this should work).
For such a project NetBeans will automatically create a runnable JAR file if you configure the main method.
In your JSF project you can simply include that project as a library. If you enable "Build projects on classpath", the jar will automatically be build when you build the web application.
Another approach would be to customize the Ant script NetBeans uses internally and add a target that builds your executable JAR file from that single class.
Details on how to customize the IDE generated Ant script can be found in the manual:
https://docs.oracle.com/netbeans/nb82/netbeans/NBDAG/create_japps.htm#CHDDAHEB

Building a multi module C project (i.e. solution) with Eclipse CDT

I am moving from Netbeans to Eclipse (on Ubuntu 12.0.4). I have a C application that consists of several sub projects which are libraries (shared and static), as well as stand alone executables.
I can't figure out how to create a 'parent' project foo, which contains component projects
foobar
foofoo
barfoo
barbar
Ideally, I want all the 'component projects' to be created under the folder foo, so that I have a directory structure like this:
/path/to/foo/foobar/ (contains foobar project files)
/path/to/foo/foofoo/ (contains foofoo project files)
/path/to/foo/barfoo/ (contains barfoo project files)
/path/to/foo/barbar/ (contains barbar project files)
Does anyone know how I can achieve this structure using Eclipse as IDE (with CDT)?
Last but not the least, I intend to create my C modules using the Autotools option. Will the generated files for Autotools be automatically updated as I add new header/source to a module - or do I need to manually maintain the Autotool files?
Friend,
I think there is no the "parent" C project. You can create a normal C project in IDE and add all dependencies into sub-folders. Then tell compiler your build procedure via Makefile. I think it's easy way as you have had experience on C application.
About autotools, once you update/add/remove your project file, I think you need to modify your Makefile to reflect your change and do clean and rebuild your project.
For other C build tools, you can use buildroot if you'd like.
The best way I can think to do this in eclipse is to create a separate workspace for the project e.g. foo, and then add the sub-projects (foobar, foofoo, etc...) as projects. This is generally a better approach to take with eclipse, instead of a single monolithic workspace. I don't know what the specific dependency structure for the sub-projects looks like, but you should be able to express it simply by using eclipse project properties. This can include a rollup executable sub-project that depends on the libraries.
Unfortunately, I'm not sure if eclipse cdt will maintain autotools files. However if not, it should be relatively easy to integrate and use some of the autotools binaries such as autoscan, and autoheader into the eclipse build commands.
At first you need to a working directory, Then you should new project, Then per file or per class (according to C++ or C ) append your files, it's much safe way. another way is not clean, i have experience. don't use them.

Is is possible to load Qt dependant library (dylib) in MonoMac and how to do it?

I need to create a dllImport and some extern functions in a MonoMac project (C#). I added the library to the latest version of MonoDevelop with the Add Native Reference option to the project.
I then added the dllImport and the extern functions, I got an Exception saying the Dll was not found. After running a System.IO.File.Exists() on the path I decided to have a method to test loading the lib using Dlfcn.dlopen(), it returned 0.
Then I copied the whole framework directory inside my bin/debug folder (in my project folder) and created native references for each library in the framework. Tried to load libcrypto.1.0.0.dylib, it didn't work.
I started thinking that something could be wrong in the method I was using. Then I got my sqlLite 3 dylib, copied it and tried the same test and got a pointer with Dlfcn.dlopen().
What am I missing here? I normally would not like to have the whole Qt baggage in there but the native dylib I have to use, uses this framework.
Is there any way to get a reference to this dylib?

Add external source files from a library to the project in Eclipse-CDT

I have a project which I try to compile with Eclipse-CDT. The project depends on a library with header files and source files. How can I configure the project in Eclipse such that it will compile the needed source files from the library with the project?
With a makefile I use:
SRC+=lib_source.c
You can add linked source file.
Choose project properties and in the left panel choose c++ general.
Under it choose path and symbols.
Now in the right panel tabs choose source location and add linked source folder.
Include you need to define in "include" (under c++ build you will find settings)
Another approach is to use the operating system to add your libraries to the project. Eclipse then treats all source files (including library files) as part of the project, and therefore compiles any that need it even if they are in the libraries. This set-up allows keeping the library sources in a separate git repository from the project source code. You can record the git commit of a library to provide library version control so that improving the library in one project does not break all the others. The setup relies on the operating system's capability to link directories in a way that is entirely transparent to eclipse--in windows using the mklink command.
In windows the steps are
put your library files in a clean workspace not mixed with .git (you can have .git in the parent directory as egit sets it up)
use cmd window in administrator mode to add a link from your project directory to your library directory.
from eclipse press F5 t make sure your project matches what is on disk, then set up git to ignore your library directory.
set up your library file properties for read only access unless you are still tweaking that library.
set up your project include path to include the project sub-directory in your project.
I can't remember why I abandoned eclipse linked directories; i think it was that the includes kept breaking. The mklink approach has worked flawlessly so far.
I have a pdf tutorial of how to set this up--but I'm new to the forum and don't see how to attach a file.

Subsume external library into source tree with Autotools

I am developing a new project, using Autotools for my build infrastructure. I would like to subsume external dependencies into my source tree. These dependencies are using Autotools, as well. How can I configure my project's build scripts to build and link against subsumed dependencies? Though Duret-Lutz's tutorial is excellent, this situation is only briefly addressed in a few slides. I found his explanation deeply confusing.
By adding the directory name of subsumed dependencies to the toplevel Makefile.am's SUBDIRS the dependency is being configured and built. It is possible to manually set include paths through CFLAGS, but how do I link against libtool .la files?
You can add the libs with relative paths.
SUBDIRS = extern
foo_SOURCES = foo/x.c ...
foo_LDADD = extern/bar/libbaz.la
foo_DEPENDENCIES = extern/bar/libbaz.la # Hack to prevent atomake from screwing parallel builds

Resources