nmoehrle / uavmvs

UAV capture planning for MVS reconstructions
Other
54 stars 19 forks source link

Showing "invalid value 'nvcc' for toolset" when run premake5 gmake #1

Open yilinliu77 opened 5 years ago

yilinliu77 commented 5 years ago

Test both in win10 and ubuntu18.04, with cuda 8.0

../premake-core/bin/release/premake5 gmake

➜  uavmvs git:(master) ../premake-core/bin/release/premake5 gmake
** Warning: the flags value C++11 has been deprecated and will be removed.
   Use `cppdialect "C++11"` instead
   @/home/whatseven/Desktop/uavmvs/premake5.lua(3)

Error: invalid value 'nvcc' for toolset
nmoehrle commented 5 years ago

Please use the premake from this branch https://github.com/nmoehrle/premake-core/tree/toolset-nvcc, the changes are not merged into the premake/premake-core repository.

yilinliu77 commented 5 years ago

Thanks for your explanation! But I still have trouble in compiling these three project using make after premake

  1. apps/generate_guidance_volume The error message is:
    
    ==== Building generate_guidance_volume (debug) ====
    generate_guidance_volume.cu
    nvcc warning : Resource usage is not shown as the final resource allocation is not done.
    ../libs/fmt/format.h(1856): error: expected an identifier
          detected during:
            instantiation of "Result fmt::ArgVisitor<Impl, Result>::visit(const fmt::ArgVisitor<Impl, Result>::Arg &) [with Impl=fmt::ArgFormatter<char>, Result=void]" 
    (3696): here
            instantiation of "const fmt::BasicFormatter<CharType, ArgFormatter>::Char *fmt::BasicFormatter<CharType, ArgFormatter>::format(const fmt::BasicFormatter<CharType, ArgFormatter>::Char *&, const fmt::internal::Arg &) [with CharType=char, ArgFormatter=fmt::ArgFormatter<char>]" 
    (3717): here
            instantiation of "void fmt::BasicFormatter<CharType, ArgFormatter>::format(fmt::BasicCStringRef<fmt::BasicFormatter<CharType, ArgFormatter>::Char>) [with CharType=char, ArgFormatter=fmt::ArgFormatter<char>]" 
    (2482): here
            instantiation of "void fmt::BasicWriter<Char>::write(fmt::BasicCStringRef<Char>, fmt::ArgList) [with Char=char]" 
    (3143): here

1 error detected in the compilation of "/tmp/tmpxft_00004324_00000000-7_generate_guidance_volume.cpp1.ii". generate_guidance_volume.make:158: recipe for target 'obj/debug/generate_guidance_volume/generate_guidance_volume.o' failed make[1]: *** [obj/debug/generate_guidance_volume/generate_guidance_volume.o] Error 2 Makefile:376: recipe for target 'generate_guidance_volume' failed


2. `apps/apps/evaluate_heuristic`
The error message is:

==== Building evaluate_heuristic (debug) ==== evaluate_heuristic.cu nvcc warning : Resource usage is not shown as the final resource allocation is not done. In file included from ../apps/evaluate_heuristic/evaluate_heuristic.cu:16:0: ../libs/util/numpy_io.h:12:25: fatal error: util/endian.h: No such file or directory compilation terminated. evaluate_heuristic.make:158: recipe for target 'obj/debug/evaluate_heuristic/evaluate_heuristic.o' failed make[1]: *** [obj/debug/evaluate_heuristic/evaluate_heuristic.o] Error 1 Makefile:424: recipe for target 'evaluate_heuristic' failed



3. `apps/evaluate_ground_sampling`
The error message is same as No.2

And I have a lot of compiling errors on missing the hearder files `<vector>` and `<random>`, I manually add them and solve the problem, I' m not sure if it is correct. But I can't find `util/endian.h` for problem No.2 and No.3. And I have no idea with No.1.

My current compiling environment:
Ubuntu:18.04
GCC:5.5.0
g++:5.5.0
nvcc:8.0, V8.0.61
nmoehrle commented 5 years ago

Thanks for the detailed write up.

The last two errors are caused by https://github.com/simonfuhrmann/mve/commit/8d63805fcf4c226b195a322a39e0695b47178d2a I was using my fork of mve and didn't detect it. I will update and change the includes eventually.

For the first one I will try to reproduce it but the guidance volume app is not necessary for the final trajectory planning app, I haven't come around to remove all apps that were just used for experimentation.

yilinliu77 commented 5 years ago

I have another question about the input ply mesh. Sorry about that, I think I'm looking like a fool.

In the example script given in the home page of this paper, I found that the first command is generate_proxy_mesh $root/$scenes/recon/gesox-cloud.ply $root/$scenes/recon/gesox-mesh.ply. So is the gesox-cloud.ply means the proxy mesh we get from the nadir images using MVE algorithm? Does that mean the example script doesn't include the process of reconstructing proxy mesh through the nadir images?

I tried to execute this command with the proxy mesh gesox-mesh_orig.ply after processing by generate_proxy_cloud and origin from the NY-1 dataset. But it failed with segmentfault. After checking the source code I found that the colors are blank in line 455,generate_proxy_mesh.cpp. I instead make the MVE repo from https://github.com/nmoehrle/mve but get the same error.

Below is the code can't be execute using gesox-mesh_orig.ply

//generate_proxy_mesh.cpp, line 450
if (!nns.empty()) {
    math::Vec3f color(0.0f);
    float norm = 0.0f;
    for (std::size_t n = 0; n < nns.size(); ++n) {
        float weight = 1.0f - nns[n].second / args.resolution;
        color += weight * math::Vec3f(colors[nns[n].first].begin());
        norm += weight;
    }
nmoehrle commented 5 years ago

First of all the way you report issues is very professional a nothing of that makes you look like a fool it rather shows a lock of documentation.

Secondly regardless of the input a segfault is a bug on my side.

With respect to the clouds and meshes, the generate_proxy_mesh app will take the point cloud generated with dmrecon and scene2pset generate a geometric scene proxy (gesox) mesh, I will have to look into the example script - my phone can't open it...

I would appreciate a PR for the missing vector includes :-)

yilinliu77 commented 5 years ago

Thanks for your explanation~

I submited the PR just now. But some files are in sub repo acc, after I checkout to the master of acc it failed to compile with other problem. So I havn't change them. The missing headers are <vector> in bvh_tree.h required by std::vector and <numeric> required by std::iota

nmoehrle commented 5 years ago

Thanks, I'll add the missing headers, and will look into the other issues within the next couple of days.