問題タブ [libconfig]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
925 参照

c++ - libconfig ++をリンクするc ++ cmake

WindowsにMicrosoft/vcpkgマネージャーを使用してパッケージlibconfigをインストールしました。また、Visual Studio で libconfig++ をプロジェクトにリンクしようとしていますが、リンクできません。

CMakeLists.txt

test.cpp

エラー:

------ リビルド開始: プロジェクト: CMakeLists、構成: RelWithDebInfo ------ クリーニング中... 0 個のファイル。[1/2] C:\PROGRA~2\MIB055~1\2017\PROFES~1\VC\Tools\MSVC\1416~1.270\bin\HostX64\x64\cl.exe /nologo /TP -IG:_Development\ Projects\cppTest\src -IG:_Development\Projects\cpprestsdk\vcpkg\installed\x64-windows\include /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /Zi /O2 /Ob1 /DNDEBUG
-std:c++17 /showIncludes /Fosrc\CMakeFiles\test.dir\test.cpp.obj /Fdsrc\CMakeFiles\test.dir\ /FS -c G:_Development\Projects\cppTest\src\test.cpp G :_Development\Projects\cpprestsdk\vcpkg\installed\x64-windows\include\libconfig.h++(51): 警告 C4275: 非 dll インターフェイス クラス 'std::exception' が dll インターフェイス クラス 'libconfig:: のベースとして使用されていますConfigException' C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\vcruntime_exception.h(44): 注: 「std::exception」の宣言を参照してください
lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ." 失敗: src/test.exe cmd.exe /C "cd . && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E vs_link_exe --intdir=src\CMakeFiles\test. dir --manifests -- C:\PROGRA~2\MIB055~1\2017\PROFES~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x64\link.exe /nologo src\CMakeFiles\test. dir\test.cpp.obj /out:src\test.exe /implib:src\test.lib /pdb:src\test.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH: G:_Development\Projects\cpprestsdk\vcpkg\installed\x64-windows\lib libconfig.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && CD 。

ビルドに失敗しました。

なにが問題ですか?

0 投票する
1 に答える
213 参照

c++ - libconfig クラスを返す 関数からオブジェクト参照を設定する

libconfig ライブラリを使用して、外部構成ファイルから変数を解析しようとしています。

libconfigサイトではクラスConfigは構成を表し、クラスSettingは構成設定を表します。設計上、これらのクラスはどちらもパブリック コピー コンストラクターまたは代入演算子を提供しないことに注意してください。したがって、これらのクラスのインスタンスは、参照またはポインターを介して関数間でのみ受け渡しできます。

Setting クラス参照を返す関数を作成するのに苦労しています (私の理解では、ローカル オブジェクトへの参照を返すことは嫌われています。しかし、上記の制限を考慮してグローバル参照を宣言する方法がわかりません)。下部に、これをコーディングしようとしたスニペットを添付しましたが、機能していません。私は C++ を初めて使用し、現在その教科書を読んでいますが、参照とポインターの処理についてはまだ不安定です。私が間違っていることに誰かが光を当てることができれば幸いです。

config.cfg

コード