0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

cl.exe メモ

Last updated at Posted at 2022-11-12

cl.exe をコマンドラインで叩く際のメモ。

コンパイルエラー

やや初歩的なやつ

Z:\SAGYOBA\for_SPH\sph_dropletmaker_gpu\GL_viewer\src\readParticles.h(446,21): error C2039: 'filesystem': 'std' のメンバーではありません

(※ include の書き忘れではない。)
→ コンパイルオプション「/std:c++17」 あたりを追加で解消。

不思議エラー

構文エラー

Z:\SAGYOBA\for_SPH\sph_dropletmaker_gpu\GL_viewer\src\concavehull.h(138,45): error C4596: 'countface_tetra_result': メンバー宣言内の限定名が間違っています。
    int* Concavehull::countface_tetra_result(
                                            ^
Z:\SAGYOBA\for_SPH\sph_dropletmaker_gpu\GL_viewer\src\glview3d_display.h(514,9): error C2059: 構文エラー: '||'
 glfwGetWindowSize(window_glfw, &width, &height)
        ^
Z:\SAGYOBA\for_SPH\sph_dropletmaker_gpu\GL_viewer\src\glview3d_display.h(519,14): error C2059: 構文エラー: '||'
Z:\SAGYOBA\for_SPH\sph_dropletmaker_gpu\GL_viewer\src\glview3d_display.h(523,51): error C2059: 構文エラー: '||'
make: *** [particleViewer] エラー 2

→ コンパイルオプション「/permissive」 で消えた。

リンカエラー

競合の警告とエラー

リンク処理で競合の警告が多量に出た後、「未解決の外部シンボル~」でエラー終了する。

例えばこういうの ↓
LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
LINK : warning LNK4217: シンボル 'strncmp' ('libucrt.lib(strncmp.obj)' で定義) が 'glfw3.lib(init.obj)' によって関数 '_glfwParseUriList' 内でインポートされています
LINK : warning LNK4286: シンボル 'strncmp' ('libucrt.lib(strncmp.obj)' で定義) が 'glfw3.lib(context.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'strncmp' ('libucrt.lib(strncmp.obj)' で定義) が 'glfw3.lib(input.obj)' によってインポートされています
LINK : warning LNK4217: シンボル 'strncmp' ('libucrt.lib(strncmp.obj)' で定義) が 'glfw3.lib(egl_context.obj)' によって関数 '_glfwCreateContextEGL' 内でインポートされています
LINK : warning LNK4286: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(win32_joystick.obj)' によってインポートされています
LINK : warning LNK4217: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(wgl_context.obj)' によって関数 '_glfwCreateContextWGL' 内でインポートされています
LINK : warning LNK4217: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(egl_context.obj)' によって関数 '_glfwCreateContextEGL' 内でインポートされています
LINK : warning LNK4286: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(osmesa_context.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(win32_window.obj)' によってインポートされています
LINK : warning LNK4217: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(win32_init.obj)' によって関数 '_glfwPlatformInit' 内でインポートされています
LINK : warning LNK4217: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(win32_monitor.obj)' によって関数 'createMonitor' 内でインポートされています
LINK : warning LNK4217: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(vulkan.obj)' によって関数 '_glfwGetVulkanResultString' 内でインポートされています
LINK : warning LNK4217: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(init.obj)' によって関数 '_glfwInputError' 内でインポートされています
LINK : warning LNK4286: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(window.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(monitor.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'calloc' ('libucrt.lib(calloc.obj)' で定義) が 'glfw3.lib(input.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(win32_joystick.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(wgl_context.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(egl_context.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(osmesa_context.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(win32_window.obj)' によってインポートされています
LINK : warning LNK4217: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(win32_init.obj)' によって関数 '_glfwPlatformTerminate' 内でインポートされています
LINK : warning LNK4217: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(win32_monitor.obj)' によって関数 '_glfwGetMonitorContentScaleWin32' 内でインポートされています
LINK : warning LNK4217: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(vulkan.obj)' によって関数 '_glfwGetVulkanResultString' 内でインポートされています
LINK : warning LNK4217: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(init.obj)' によって関数 'terminate' 内でインポートされています
LINK : warning LNK4286: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(window.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(monitor.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'free' ('libucrt.lib(free.obj)' で定義) が 'glfw3.lib(input.obj)' によってインポートされています
LINK : warning LNK4217: シンボル 'strtol' ('libucrt.lib(strtox.obj)' で定義) が 'glfw3.lib(init.obj)' によって関数 '_glfwParseUriList' 内でインポートされています
LINK : warning LNK4217: シンボル '__stdio_common_vsprintf' ('libucrt.lib(output.obj)' で定義) が 'glfw3.lib(init.obj)' によって関数 '_glfwInputError' 内でインポートされています
LINK : warning LNK4217: シンボル '__stdio_common_vsprintf' ('libucrt.lib(output.obj)' で定義) が 'glfw3.lib(win32_joystick.obj)' によって関数 '_glfwInitJoysticksWin32' 内でインポートされています
LINK : warning LNK4217: シンボル 'strncpy' ('libucrt.lib(strncpy.obj)' で定義) が 'glfw3.lib(window.obj)' によって関数 'glfwWindowHintString' 内でインポートされています
LINK : warning LNK4286: シンボル 'strncpy' ('libucrt.lib(strncpy.obj)' で定義) が 'glfw3.lib(monitor.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'strncpy' ('libucrt.lib(strncpy.obj)' で定義) が 'glfw3.lib(input.obj)' によってインポートされています
LINK : warning LNK4286: シンボル 'strncpy' ('libucrt.lib(strncpy.obj)' で定義) が 'glfw3.lib(win32_joystick.obj)' によってインポートされています
LINK : warning LNK4217: シンボル '__stdio_common_vsscanf' ('libucrt.lib(input.obj)' で定義) が 'glfw3.lib(context.obj)' によって関数 'sscanf' 内でインポートされています
LINK : warning LNK4217: シンボル 'qsort' ('libucrt.lib(qsort.obj)' で定義) が 'glfw3.lib(monitor.obj)' によって関数 'refreshVideoModes' 内でインポートされています
LINK : warning LNK4217: シンボル 'qsort' ('libucrt.lib(qsort.obj)' で定義) が 'glfw3.lib(win32_joystick.obj)' によって関数 '_glfwInitJoysticksWin32' 内でインポートされています
LINK : warning LNK4217: シンボル 'strtoul' ('libucrt.lib(strtox.obj)' で定義) が 'glfw3.lib(input.obj)' によって関数 'parseMapping' 内でインポートされています
glfw3.lib(init.obj) : error LNK2019: 未解決の外部シンボル __imp_strtok が関数 _glfwParseUriList で参照されました
glfw3.lib(init.obj) : error LNK2019: 未解決の外部シンボル __imp_realloc が関数 _glfwParseUriList で参照されました
glfw3.lib(monitor.obj) : error LNK2001: 外部シンボル __imp_realloc は未解決です
glfw3.lib(input.obj) : error LNK2001: 外部シンボル __imp_realloc は未解決です
glfw3.lib(win32_monitor.obj) : error LNK2001: 外部シンボル __imp_realloc は未解決です
glfw3.lib(input.obj) : error LNK2019: 未解決の外部シンボル __imp_strcspn が関数 glfwUpdateGamepadMappings で参照されました
glfw3.lib(input.obj) : error LNK2019: 未解決の外部シンボル __imp_strspn が関数 glfwUpdateGamepadMappings で参照されました
example_glfw_opengl2.exe : fatal error LNK1120: 4 件の未解決の外部参照
make: *** [example_glfw_opengl2.exe] エラー 2
対処法(※コンパイルからやり直せる場合)

コンパイル段階に戻って、オプション 「/MD」 を追加で再コンパイル。
⇒ 後のリンク処理が正常になった。

ランタイムの不一致

↓ こういうのがいっぱい出る。

qhullcpp.lib(PointCoordinates.obj) : error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MT_StaticRelease' が MD_DynamicRelease の値 'glview3d.obj' と一致しません。

→ コンパイル段階の「/MD /MT」とかで対処、ライブラリを作り直し必要かも。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?