QMake and a .pro file - qmake

I've downloaded a package and am trying to build/install it. The project's wiki page has a command that looks like
qmake VAR=/path/to/something/ project.pro
It says that this command should tell qmake to generate a make file. Instead, I'm getting
qmake: Nothing to be done for `project.pro'.
Why is qmake not generating the make file like it's supposed to?

Without knowing the project in questions or the contents of the project (.pro) file, it is difficult to diagnose. One possibility is that qmake was already run, or that the files it is to generate are included with your download. In these circumstances, there really is nothing to be done for said project.
As a side note, may I recommend downloading "Qt Creator" and opening the project file in there? Qt Creator tends to make Qt development and project building a lot easier.

I just answered my own question... apparently there is more than one qmake. On my system, we're using a qmake: distributed parallel make, scheduling by Grid Engine. I found /etc/alternatives/qmake which is the QT qmake...

Related

What is the difference in .embeddedframework.zip and .framework?

I am attempting to extend some functionality to a plugin designed for use in Unreal Engine 4. Using the documentation available and reviewing the solution I've encountered something I do not understand and cannot figure out a way to research it.
In this plugin, the original developer has 2 different files *.embeddedframework.zip, in each of these files there are some binary files, module maps, and *.h files. These *.h files are able to include iOS modules.
I have been able to create .framework builds using Xcode, unfortunately, the do not seem to contain the same format as the *.embeddedframework.zip file.
I apologize for the vague question; I'm new to iOS and I'm quite stumped, any leads whatsoever would be appreciated! (code available on request but it's really quite boilerplate)
YourFramework.embeddedframework.zip is just a zip archive of the Xcode products that takes the following form:
YourFramework.embeddedframework.zip
> YourFramework.embeddedframework/
> YourFramework.framework/
After you link it and build, you can verify that the unzipping worked by checking here:
/Users/Shared/Epic Games/UE_4.17/Engine/Intermediate/UnzippedFrameworks/

ng-boilerplate LESS files are not compiling to the CSS file in build directory

The CSS (from LESS) is not rendering or compiling in my ng-boilerplate app.
I'm creating an app using ng-boilerplate and rails using these tutorials here, and we've integrated a working rails server with the angular. The angular is working on any page... as in, we can use:
$scope.animal = "dogs"
and
<div> I like {{animal}}! </div>
to get
I like dogs!
However, the Less and CSS (which was copied and pasted from a functional ng-boilerplate app without rails where it worked and compiled from all the different directories just fine) is not compiling to the build directory nor rendering. In fact, in this new app (the one with the rails), not even the original css/less from the ng-boilerplate template will compile or render.
We tried using the following commands, as the tutorial suggested, which created weird nested build directories (a build inside the build inside the build) and didn't fix the problem.
cd public
ln -s ../build UI
Meanwhile, the UI folder is linked to the build folder using a symlink but...
The LESS (from different files in different directories) is all supposed to compile to one CSS file called ng-boilerplate.css (which it did in the original app without rails), and instead there's a file called ng-boilerplate-0.3.1.css, which is empty. I tried renaming that, but it re-renames itself back to the 0.3.1 one every time grunt builds it.
I'm using rails version 4.2.1 and ruby says it's 2.1.0p0.
I hope that you have already found a solution, as I realise that this post is quite old. However, since this question appears reasonably highly when I was google searching, I felt it should have an answer.
When using ng-boilerplate, you need to be aware that, although it's compile process finds all of your JS files and makes nice compiled JS code, the same is not done for the LESS files in their build process. If you look in the directory 'src/app/less/' and view the 'main.less' file, you can see a small note mentioning that he would like to automate this process. Instead, it is at this point that you unfortunately need to manually import all of your LESS files.
The LESS way to import files is this for anybody who is unsure:
#import '../app/less/fileToImport.less'
The path can be relative or absolute.

iOS - missing Platform Libraries

First of all, I've never worked on iOS, so this may or may not be a stupid question, I don't know :)
I have an iOS App, and I need to run it.
In the 'Project Navigator' I have a folder/package called 'Reuse and Platform Libraries'. Inside, I have another four folders but 3 of them seem like missing.
I am not sure if this is the case. I've tried googling their name but without results so I assume they are not some open source libraries.
Can someone clear this up for me? Do I need to install some XCode packages?
Thanks!
I suggest you search the folder of the project for those files, sometimes when copying a project the paths get screwed up because they were set as absolute paths and not relative paths.
If you can't find the files, it's most likely that the library is a private one used by the previous developers, and usually kept out of the project folder so they probably forgot to send it along. I'd suggest simply asking them to send the files over :).
There is also a slight chance they are not needed to run the file, in which case, just deleting them from the sidebar should make the project run.

Opencv dll issues

I was following a tutorial for object detection using opencv, I did it step by step but when I run it, I got this error -
The program can't start because opencv_244d.dll is missing from your computer.
Try reinstalling the program to fix this problem.
I don't know what is the problem because I can see this dll in opencv libraries, I have added the following to the input dependencies:
opencv_core244d.lib
opencv_imgproc244d.lib
opencv_highgui244d.lib
opencv_ml244d.lib
opencv_video244d.lib
opencv_features2d244d.lib
opencv_calib3d244d.lib
opencv_objdetect244d.lib
opencv_contrib244d.lib
opencv_legacy244d.lib
opencv_flann244d.lib
This is still not working, what can I do?
You can find the required dll files into the bin folder (that is next to lib folder where the .lib files are located), and you have two options:
1) copy the required dlls into the same folder with your application //this is a little better because it kind of prepares you for when you'll need to deploy your application on systems that don't have opencv installed (for then don't forget to build the release version of your application)
or
2) add to the Path in the Environment Variables your path to that bin folder (be carefull that the path in there are separated by ; )
I would advise you to build the OpenCV libraries from source so that you can have a custom installation specific for your system (this is always better since it gives you the option of using what you want/need and also the performance is better since the libs are custom-made for your system).
OpenCV does not contain a library file called "opencv_244d.dll".
Check all your dependencies and their names so you don't have any misspelled names. All the names are something like "opencv_name244d.dll" such as "opencv_photo244d.dll".

How to include the boost library in a C++ application?

I'm very inexperienced with Linux and the terminal, but I'm trying to learn. I've also never included an external library before. Now I need to include the Boost.Asio library in a program being developed in Ubuntu with G++.
Could someone very kindly and very carefully explain how to go about this, from the beginning?
EDIT:
Expanding on the original question: if I need to send this code to someone else for them to run it on a completely separate machine but in the same environment, how do I take that into account? If this whole process involves literally placing library files into the same folder as the code, do I just send those library files along with the .cpp to this other person?
You have mentioned you are using Ubuntu, so the simplest way to use boost is to first install libboost-all-dev package (from synaptic), which will install everything for you including those that needed to be compiled. Then you just need to use g++ in the usual way.
Please note that whether the version is what you want, if not, you may want to install it yourself. On the other hand, boost is mostly header only library, so you only need to extract the files (right click in Ubuntu...) to a folder and link to it while compiling:
g++ hello_world.cpp -I boost_1_49_0/boost
where the last one specify the path for compiler to find the boost headers (please use absolute path).
If you want to send your program to others, dont copy only some boost files, it does not work because of the dependence. Ask them to install the same environment as you while is easy (just unzip a file...).
I don't know about your specific IDE, or about Boost.Asio specifically, but in general:
Whenever you need to link to a library, there is a file named similar to lib???.a, which you need. You need to pass the -l??? flag to g++ to link to the file.
(I'm not too familiar with the details myself, so there might be other file formats and whatnot too...)
Regarding the edit:
The "right" way would be to just have them download the library themselves, and just pass -l??? to their linker. Including Boost in your source code will make it huge, and for no good reason... it's not like you include the STL in your code, after all.
You don't include the library, but instead you declare a dependency on it. Eg. consider you use autoconf and automake then you would add AX_BOOST_BASE1 to require boost and AX_BOOST_ASIO to require the ASIO libraries. In your Makefile.am file(s) you use BOOST_CPPFLAGS and BOOST_LDFLAGS macros and rely on the ./configure to set them properly. Then whoever consumes your code will have to run the well know ./configure script which will analyze the environment for the location of boost and setup appropriate values in the build environment so that the make succeeds.
Well at least this is the theory. In practice there is a reason the whole thing is better known as autohell. Alternatives exists, like CMake or boost's own bjam. But the synopsis is always the same: you declare the dependency in your build configuration and the destination location that consumes you product has to satisfy the requirement (meaning it has to download/install the required version of boost, in your case). Otherwise you enter into the business of distributing binaries and this is frowned with problems due to richness of platforms/architectures/distributions your application is expected to be deployed in.
Obviously if you use a different build system, like ANT, then you should refer to that build system documentation on how to declare the requirement for boost.
1: ax_boost.m4 is not the only boost detecting m4 library, there are other out there, but is the one documented on the GNU autoconf list of macros

Resources