最速怪談選手権

今回、初めてCMakeでC++のビルドを行っています。
実際、ビルドしてみると以下のエラーが出て、どうしたら良いかわかりません。

CMake Error at CMakeLists.txt:1:
Parse error. Expected a command name, got unquoted argument with text
"!<symlink>��.".

●CMakeLists.txt
cmake_minimum_required(VERSION 3.0.0)
project(ConvAccelTutorial)
set(SOURCE_FILE main.cpp naive.cpp optimized.cpp)

find_package(OpenCV REQUIRED)

include_directories(
${OpenCV_INCLUDE_DIRS}
)

add_executable(
${PROJECT_NAME} ${SOURCE_FILE}
)

target_link_libraries(
${PROJECT_NAME} ${OpenCV_LIBRARIES}
)

target_compile_options(
${PROJECT_NAME} PUBLIC -Wall -g -Ofast -march=native


ご存知の方、教えて下さい

A 回答 (4件)

もちろん


Cygwin 用の CMake を使う
という手もある. それがどこにあるかは知らんけど, 最悪自分で作ればいい.
    • good
    • 0

あぁやっぱり.



Cygwin のデフォルトではシンボリックリンクの扱いが Windows と違う, というのが本質的な原因でしょうね. ちょいと調べてみると Cygwin での扱いを Windows と同じにするための方法がある
例えば https://takuya-1st.hatenablog.jp/entry/2014/05/2 …
ようなので, これをやってからシンボリックリンクを作ればいける... んじゃないかな. Cygwin はここ数年触ってないから確認するつもりはないけど.
    • good
    • 0

実は質問文を見て想像したのは


・Cygwin を使っている
・CMakeLists.txt が Cygwin 上シンボリックリンクである
・CMake は Windows ネイティブ
で,
Cygwin 上のシンボリックリンクが Windows からは「変な内容の『ふつうの』ファイル」と見える, かつ 「!<symlink>」が (Cygwin での) シンボリックリンクの MAGIC
だと思えば辻褄があう. つまり
Cygwin 上で Windows ネイティブな CMake を使ったため, Cygwin 上のシンボリックリンクである CMakeLists.txt が「!<symlink>なんとかかんとか」というファイルに見えてしまった
という可能性ね.

簡単にいうと
CMake のエラーメッセージにある謎の「!<symlink>なんとかかんとか」をどうひねりだすか
と考えたときに, 「異なるシステム」が混在していると仮定するのが一番てっとりばやいってこと.

ただ, Cygwin (などの異なるシステム) がないんだとすると, そもそも CMakeLists.txt の中身がそう (質問文のように) なっているのをどう確認したのかが疑問だったりする.

あと, Cygwin を想定したのはコンパイルオプションにもある. このオプション, Visual Studio (Visual C++ というべき?) にはないんだよね. GCC (ないし Clang) を想定させるので, そいつらを使ってかつ「シンボリックリンクが変」と考えると Cygwin くらいしか出てこなかった.
    • good
    • 0
この回答へのお礼

仰る通り、Cygwinで実行しました。
しかも、
・CMakeLists.txt が Cygwin 上シンボリックリンクである
・CMake は Windows ネイティブ
もその通りです。

お礼日時:2021/02/16 20:37

かくにん.



OS はなんですか?
CMake はどうやってインストールしました?
CMakeLists.txt を作ってから CMake でエラーになるまで, どのような操作をしてどのようなメッセージが出てきたのですか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
OSはWindows10 です。
CMakeは、cmake-3.19.4-win64-x64.msiを使いインストール
しました。
opencvのbuildフォルダへCMakeLists.txt、c++のファイルを移動させ
cmakeを実行しました。
また、visual studioが必要そうだったので、フリー版をインストール
しました。
そのときのLogが以下です。

Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19041.
CMake Error at CMakeLists.txt:5 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one.

Could not find a package configuration file provided by "OpenCV" with any
of the following names:

OpenCVConfig.cmake
opencv-config.cmake

Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
"OpenCV_DIR" to a directory containing one of the above files. If "OpenCV"
provides a separate development package or SDK, be sure it has been
installed.


Configuring incomplete, errors occurred!
See also "C:/opencv/build/CMakeFiles/CMakeOutput.log".

お礼日時:2021/02/15 23:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!