Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could not compile dependency hoedown, make command failed. - Windows #10

Open
seadynamic8 opened this issue Dec 6, 2014 · 9 comments
Open

Comments

@seadynamic8
Copy link

I'm assuming since you have a Makefile.win that you also support Windows.

Anyways, when I go to compile the dependcies, I get the following from mix:

==> hoedown
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/autolink.o src/autolink.c
make: cc: Command not found
Makefile:80: recipe for target 'src/autolink.o' failed
make: *** [src/autolink.o] Error 127
==> markdown_server
** (Mix) Could not compile dependency hoedown, make command failed. If you want to recompile this dependency, please run: mix deps.compile hoedown

I'm not sure if this is from your library or hoedown. Can you please take a look?

Thanks.

@josevalim
Copy link
Contributor

Have you installed a C compiler on your machine? It seems it is missing the cc executable. MinGW may include one, otherwise you may need the Visual Studio tooling.

@seadynamic8
Copy link
Author

I have gcc on my machine. Can I use that instead?

Do I have to compile this manually?

@josevalim
Copy link
Contributor

Is cc available in your PATH? If you change cc manually to your gcc compiler, does it work?

@seadynamic8
Copy link
Author

I was just looking it up. It seems that cc is the clang compiler, renamed to "cc" on FreeBSD systems. https://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/tools-compiling.html

I just created a symoblic link from cc to gcc. But that failed with this error:

>mix deps.compile
==> hoedown
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/autolink.o src/autolink.c
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/buffer.o src/buffer.c
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/document.o src/document.c
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/escape.o src/escape.c
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/html.o src/html.c
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -Wno-static-in-inline -c -o src/html_blocks.o src/html_blocks.c
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/html_smartypants.o src/html_smartypants.c
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/stack.o src/stack.c
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o src/version.o src/version.c
cc -shared src/autolink.o src/buffer.o src/document.o src/escape.o src/html.o src/html_blocks.o src/html_smartypants.o src/stack.o src/version.o  -o libhoedown.so.3
ln -f -s libhoedown.so.3 libhoedown.so
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o bin/hoedown.o bin/hoedown.c
bin/hoedown.c: In function 'parse_short_option':
bin/hoedown.c:200:15: warning: 'num' may be used uninitialized in this function [-Wmaybe-uninitialized]
   data->ounit = num;
               ^
bin/hoedown.c: In function 'parse_long_option':
bin/hoedown.c:323:15: warning: 'num' may be used uninitialized in this function [-Wmaybe-uninitialized]
   data->ounit = num;
               ^
cc bin/hoedown.o src/autolink.o src/buffer.o src/document.o src/escape.o src/html.o src/html_blocks.o src/html_smartypants.o src/stack.o src/version.o  -o hoedown
cc -g -O3 -ansi -pedantic -Wall -Wextra -Wno-unused-parameter -Isrc -c -o bin/smartypants.o bin/smartypants.c
bin/smartypants.c: In function 'parse_short_option':
bin/smartypants.c:89:15: warning: 'num' may be used uninitialized in this function [-Wmaybe-uninitialized]
   data->ounit = num;
               ^
cc bin/smartypants.o src/autolink.o src/buffer.o src/document.o src/escape.o src/html.o src/html_blocks.o src/html_smartypants.o src/stack.o src/version.o  -o smartypants
==> markdown
could not compile dependency markdown, mix compile failed. You can recompile this dependency with `mix deps.compile markdown` or update it with `mix deps.update markdown`
** (ErlangError) erlang error: :enoent
    (elixir) lib/system.ex:440: System.cmd("nmake", ["/F", "Makefile.win", "priv\\markdown.dll"], [stderr_to_stdout: true])
    mix.exs:6: Mix.Tasks.Compile.Hoedown.run/1
    (mix) lib/mix/tasks/compile.ex:59: anonymous fn/2 in Mix.Tasks.Compile.run/1
    (elixir) lib/enum.ex:977: Enum."-map/2-lc$^0/1-0-"/2
    (mix) lib/mix/tasks/compile.ex:58: Mix.Tasks.Compile.run/1
    (mix) lib/mix/tasks/deps.compile.ex:105: anonymous fn/2 in Mix.Tasks.Deps.Compile.do_mix/1
    (mix) lib/mix/project.ex:194: Mix.Project.in_project/4
    (elixir) lib/file.ex:1061: File.cd!/2

Let me see if I can get clang installed on my system and sym link it to cc.

@josevalim
Copy link
Contributor

Ah, something is definitely wrong. You are on Windows but it seems to be using the regular Makefile and not the Windows one. Which terminal are you using to compile this? Which Elixir version?

@seadynamic8
Copy link
Author

I'm on Windows 8.1, using ConEmu as my terminal. Using Elixir 1.0.2

I just tried doing this with clang compiler, sym linked to cc. Same output.

@josevalim
Copy link
Contributor

What does :os.type return for you in your iex shell? I am running out of ideas. :(

@josevalim
Copy link
Contributor

Also, what is requiring this project? We have a markdown processor in pure Elixir here, would that be enough for your needs?

@seadynamic8
Copy link
Author

:os.type returns this:
{:win32, :nt}

I was trying to do an Elixir sip (www.elixirsips.com), trying to make a markdown parser.

Ah, I should've figured that out. It was calling for ex_doc, ex_doc didn't have the markdown parser, so I went to look for another one.

Thanks Jose.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants