I need to run cmake to create Makefiles, then make to compile.
(Using ForeignCc for cmake and make).
The problem is that the make step doesn't see the Makefiles from cmake.
There are only 3 Makefiles. I've tested, and that's all I would need to copy over.
But is it possible to just let make run in the processed directory that cmake worked on?
Thanks
I want to automatically create Makefile dependency files in a hidden folder but I can't find an example of how to create dependency files automatically. Everything concerning makefile is gcc, but I am using not for gcc and I am not too familiar with gcc.
I have a makefile like this.
importf = .mkfiles/import
import: $(importf)
$(importf):
#$(call make_function,0,import)
Could you please help me what I am missing in the makefile.
I am working in Android source code with Kitkat version, and I encounter a weird problem when I executing make command, the error message are listed below.
make: No rule to make target `out/target/product/msm8909_512/obj/STATIC_LIBRARIES/revlib_intermediates/export_includes',
needed by `out/target/product/msm8909_512/obj/STATIC_LIBRARIES/third_party_harfbuzz_ng_harfbuzz_ng_gyp_intermediates/import_includes'.
Stop.make: Waiting for unfinished jobs....
I can't find a proper answer so far, do I need to install any additional libraries ?
Env: ubuntu 12.04 && java version 1.6.0_45
Please do me a favor.
No rule to make target xxx, needed by yyy.
This means that make decided it needed to build a target, but then couldn't find any instructions in the makefile on how to do that, either explicit or implicit (including in the default rules database). If you want that file to be built, you will need to add a rule to your makefile describing how that target can be built. Other possible sources of this problem are typos in the makefile (if that filename is wrong) or a corrupted source tree (if that file is not supposed to be built, but rather only a prerequisite).
reference
When I was compiling llvm and clang repo it badly hangs at a linking target close to the end(suppose due to the lack of ram) and I had to interrupt compilation with ctrl-c.But the bulk of targets were done creating a number of directories locally.Is there an option to compile only the failed targets while not doing a whole project compilation with make?
Compiled targets will not be recompiled automatically.
Correct.In my case after looking up Makefile I found target
check-all
Then make utility has checked targets and compiled only those which were not ready.
Thanks
I've just downloaded Eclipse CDT developer kit (87MB) for Windows. I've also installed MinGW, and msys.
I also added this to PATH: C:\msys\1.0\bin;C:\mingw\bin. and restarted computer after that. I've checked by type "make --version" in cmd and it works.
However, for some reason I cannot compile my C project. I don't get binary files and got only the following things in COnsole:
**** Build of configuration Default for project XXX ****
make all
make: *** No rule to make target `all'. Stop.
Could some one help me with this please?
For future reference, if you're trying to import an existing project with a makefile...
This message will still pop up if your makefile doesn't have an "all" rule. Using the "Generate Makefiles automatically" option should take care of this automatically. If you don't want makefiles made for you, you have at least 3 simple options...
Option 1
If you don't want to use a rule by that name, use twokats' solution. Here's a clarification.
Go to Project Properties -> C/C++ Build -> Behaviour Tab.
Leave Build (Incremental Build) Checked.
Remove "all" from the text box next to Build (Incremental Build).
This lets Eclipse know you aren't trying to use a make target called "all". For some reason, that is the default.
Option 2
Use something similar to Etiennebr's makefile. Note, the all: $(TARGET) line is the rule that Eclipse is complaining it can't find.
Option 3
Substitute "all" with a rule name of your choice, and be sure to include that rule in your makefile.
Just for your reference, there is a way to configure the CDT build options. I had this same error message (although I did have a make target - just not named "all") and found this solution (for Galileo + CDT):
Right click your project and choose Properties. The Properties dialog will appear and you should see a C/C++ Build option where you can set specific build options. Highlight this item, and the Properties page will appear. Choose the configuration you wish to modify, and then in the section below that you should see 2 tabs: Builder Settings and Behavior. It is the Behavior tab you want. In this section you can set preferences for build settings and workbench settings, including specifying a target name (default is "all") or turning off automatic builds.
This was incredibly helpful to me when I started using the CDT. My source code is separate from the build area, and until I configure, no makefiles exist. When I configured, my default target name is explicitly "default", not "all". It was annoying to have Eclipse report an error in my project before I did anything. Setting up the environment to match my development worked wonders. HTH.
right click the project Properties->C/C++ Build, in the "Builder Settings" check the "Generate Makefiles automatically" option, and then select the "Builder type" option to "Internal builder", and then click ok, the problem was solved!
I spent a lot of time on this error and now realized that those projects that are not compiled were created before I installed MinGW and msys so there was no makefile before. And there was no include folder with link to the makefile. That's the reason why I could not compile it. Now as I create new project, it's fine.
However, I wonder if there is any way to add the path to makefile for the previous projects?
Thanks
You should take a look at your makefile (or create one if missing). That's the default makefile :
CXXFLAGS = -O2 -g -Wall -fmessage-length=0
OBJS = main.cpp
LIBS =
TARGET = main.exe
$(TARGET): $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)
all: $(TARGET)
clean:
rm -f $(OBJS) $(TARGET)