5

問題なく動作する簡単なアプリケーションを作成しました。ただし、次のディレクトリにあるいくつかのライブラリとリンクする必要があります。

/opt/norton/lib

私のmakeファイルには、次のように機能しますが、cmakeを使用する必要があります

LIBS_PATH = -L/opt/norton/lib
INC_PATH = -I/opt/norton/inc

LIBS = -lntctrl

私の CMakeList.txt にはこれがありますが、機能しません。次のエラーが発生し続けます。

undefined reference to `nt_init'

これは私の CMakeList.txt です

# Includes files
INCLUDE_DIRECTORIES(/opt/norton/inc)

# Link libraries
LINK_DIRECTORIES(/opt/norton/lib)

# Add the library that is used by nt_init
TARGET_LINK_LIBRARIES(-lntctrl)

ADD_LIBRARY(application initialize_nw) 

アドバイスをありがとうございました。

4

1 に答える 1

8

試してみてくださいTARGET_LINK_LIBRARIES(ntctrl)-lフラグはそこで使用されるべきではありません(私が考えていることから推測します)

これは私がcmakeファイルを書く方法です:

include_directories(/opt/norton/inc)
link_directories(/opt/norton/lib)
add_executable(application initialize_nw)
target_link_libraries(application ntctrl)

make中に実行される実際のコマンドラインを表示するには、次を使用します。

make VERBOSE=1

たぶんこれは、手動で実行したものとcmakeで生成されたコマンドの違いを示しています。

于 2009-10-28T09:06:47.993 に答える