unrecognized command-line option '-arch'; did you mean '-march='? Asked 4 years, 10 months ago Modified 1 year, 11 months ago Viewed 3k times
As far as I know, the compilation option for MSVC that tells the compiler to use special available instruction is /arch. On clang/linux, we can use -march=native to automatically detect the archite...
Another thing to consider: if PCL's CMake configuration (found by find_package(PCL)) is setting -march=native and other SSE flags, it suggests the PCL on your machine was built with those flags enabled. Compiling your own program with different flags also risks binary compatibility issues. The safest solution may be to recompile PCL with the appropriate flags for the machine you want to run ...
As I understand it, -march=native will detect the ISA and extensions to use from cpuid (which include model, family and stepping information). -march=xxx will use a baseline set of extensions and a baseline ISA. There are a lot of possible combinations of extensions, so only the most relevant were chosen (e.g. skylake-avx512 was added to reflect an important extension of some skylakes). -march ...
What are the differences and tradeoffs between -march=haswell, -march=core-avx2, and -mavx2 for compiling avx2 intrinsics? I know that -mavx2 is a flag and -march=haswell/core-avx2 are architectures which just translate to a bunch of flags. So -mavx2 is a subset of the other two. But beyond that, how do I choose the right one for my application?