emscripten-core / emscripten-core/emscripten

Emscripten Fails to Build my cpp project, please help!

Open
#16,423 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
27.6k
Forks
3.6k
Avg merge
1d 1h
Merged PRs (30d)
105

Description

I'm trying to compile my project to wasm, and now I meet a error when compiling.
My command:
`emcc -o slicer.js .\CMakeFiles\Slicer.dir\meshslice.cpp.o `

the error:
`wasm-ld: error: .\CMakeFiles\Slicer.dir\meshslice.cpp.o: must specify -mwasm64 to process wasm64 object files`

what does it mean.

MeshSlice.cpp
```
#include
#include
#include
#include
#include

#include
#include "fffProcessor.h"
#include "layerPart.h"
#include "meshslice.h"
#include "optimizedModel.h"
#include "slicer.h"
#include "utils/logoutput.h"

using namespace cura;
using namespace emscripten;

SliceVolumeStorage meshslice(SimpleVolume vol, ConfigSettings config) {
fffProcessor processor(config);
processor.processFile(&vol);
return processor.storage;
}

SliceVolumeStorage meshslice(SimpleVolume vol, float layerThickness) {
ConfigSettings config;
config.layerThickness = MM2INT(layerThickness);
fffProcessor processor(config);
processor.processFile(&vol);
return processor.storage;
}

EMSCRIPTEN_BINDINGS(my_module) {
function("meshslice_thickness", select_overload(&meshslice));
function("meshslice_config", select_overload(&meshslice));
}
```

cmake
```
cmake_minimum_required(VERSION 3.9)
project(Slicer)
FILE(GLOB SOURCE_1 "${CMAKE_CURRENT_SOURCE_DIR}/modelFile/*.cpp")
FILE(GLOB SOURCE_2 "${CMAKE_CURRENT_SOURCE_DIR}/utils/*.cpp")
FILE(GLOB SOURCE_3 "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
FILE(GLOB SOURCE_4 "${CMAKE_CURRENT_SOURCE_DIR}/clipper/*.cpp")
SET(EMSCRIPTEN_HEADER_PATH "D:/app/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/emscripten")
MESSAGE(STATUS "SOURCE_1 Directory: ${SOURCE_1}")
MESSAGE(STATUS "SOURCE_2 Directory: ${SOURCE_2}")
MESSAGE(STATUS "SOURCE_3 Directory: ${SOURCE_3}")
MESSAGE(STATUS "SOURCE_4 Directory: ${SOURCE_4}")

INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}")
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/modelFile")
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/utils")
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/clipper")
INCLUDE_DIRECTORIES("${EMSCRIPTEN_HEADER_PATH}")

SET(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")
add_library(${PROJECT_NAME} "${SOURCE_1}" "${SOURCE_2}" "${SOURCE_3}" "${SOURCE_4}")
target_link_libraries(${PROJECT_NAME})
```

And i want to know how to generate wasm files by using a *.a lib file.
Please help, thanks a lot!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.